22
33import static org .junit .Assert .*;
44
5+ import com .google .common .collect .Lists ;
56import io .getstream .core .BatchDeleteActivities ;
67import io .getstream .core .http .HTTPClient ;
78import io .getstream .core .models .BatchDeleteActivitiesRequest ;
89import io .getstream .core .models .BatchDeleteActivitiesRequest .ActivityToDelete ;
910import io .getstream .core .models .Activity ;
11+ import io .getstream .core .models .FeedID ;
12+ import io .getstream .core .options .Filter ;
13+ import io .getstream .core .options .Limit ;
1014import java8 .util .concurrent .CompletableFuture ;
1115import org .junit .*;
1216
1317import java .net .URL ;
1418import java .util .Arrays ;
1519import java .util .List ;
20+ import java .util .UUID ;
1621
1722public class BatchDeleteActivitiesTest {
1823
@@ -35,26 +40,28 @@ public void setUp() throws Exception {
3540 @ Test
3641 public void testDeleteActivities () throws Exception {
3742 BatchDeleteActivitiesClient batchDeleteClient = client .batchDeleteActivities ();
43+ String uuid1 = UUID .randomUUID ().toString ().replace ("-" , "" );
44+ FlatFeed feed = client .flatFeed ("flat" , uuid1 );
3845
3946 // Insert some activities
4047 Activity activity1 = Activity .builder ()
4148 .actor ("user1" )
4249 .verb ("post" )
4350 .object ("object1" )
4451 .build ();
45- Activity activity1Res = client . flatFeed ( "user" , "user1" ) .addActivity (activity1 ).join ();
52+ Activity activity1Res = feed .addActivity (activity1 ).join ();
4653
4754 Activity activity2 = Activity .builder ()
4855 .actor ("user1" )
4956 .verb ("like" )
5057 .object ("object2" )
5158 .build ();
52- Activity activity2Res = client . flatFeed ( "user" , "user1" ) .addActivity (activity2 ).join ();
59+ Activity activity2Res = feed .addActivity (activity2 ).join ();
5360
5461 // Create delete request
5562 List <ActivityToDelete > activities = Arrays .asList (
56- new ActivityToDelete (activity1Res .getID (), Arrays .asList ("user1" )),
57- new ActivityToDelete (activity2Res .getID (), Arrays .asList ("user1" ))
63+ new ActivityToDelete (activity1Res .getID (), Arrays .asList ("user: user1" , "user:alice " )),
64+ new ActivityToDelete (activity2Res .getID (), Arrays .asList ("user: user1" ))
5865 );
5966 BatchClient clientBatch = Client .builder (apiKey , secret ).build ().batch ();
6067
@@ -80,4 +87,66 @@ public void testDeleteActivities() throws Exception {
8087 List <Activity > deletedActivity2 = clientBatch .getActivitiesByID (activity2Res .getID ()).join ();
8188 assertEquals (0 , deletedActivity2 .size ());
8289 }
90+
91+ @ Test
92+ public void testDeleteActivitis () throws Exception {
93+ BatchDeleteActivitiesClient batchDeleteClient = client .batchDeleteActivities ();
94+
95+ // Insert some activities
96+ String uuid1 = UUID .randomUUID ().toString ().replace ("-" , "" );
97+ String uuid2 = UUID .randomUUID ().toString ().replace ("-" , "" );
98+
99+ FlatFeed feed = client .flatFeed ("flat" , uuid1 );
100+ FlatFeed feedAlice = client .flatFeed ("flat" , uuid2 );
101+ Activity activity1 = Activity .builder ()
102+ .actor ("user1" )
103+ .verb ("post" )
104+ .to (Lists .newArrayList (feedAlice .getID ()))
105+ .object ("object1" )
106+ .build ();
107+ Activity activity1Res = feed .addActivity (activity1 ).join ();
108+
109+ Activity activity2 = Activity .builder ()
110+ .actor ("user1" )
111+ .verb ("like" )
112+ .to (Lists .newArrayList (feedAlice .getID ()))
113+ .object ("object2" )
114+ .build ();
115+ Activity activity2Res = feed .addActivity (activity2 ).join ();
116+
117+ // Verify activities are inserted
118+ List <Activity > activities =feed .getActivities (
119+ new Limit (69 ), new Filter ()).join ();
120+ assertEquals (2 , activities .size ());
121+
122+ // Create delete request
123+ List <ActivityToDelete > activitiesToDelete = Arrays .asList (
124+ new ActivityToDelete (activity1Res .getID (), Arrays .asList (feed .getID ().toString ())),
125+ new ActivityToDelete (activity2Res .getID (), Arrays .asList (feedAlice .getID ().toString ()))
126+ );
127+ BatchDeleteActivitiesRequest request = new BatchDeleteActivitiesRequest (activitiesToDelete );
128+ CompletableFuture <Object > future = batchDeleteClient .deleteActivities (request );
129+ future .join ();
130+
131+
132+ // Verify activities are deleted by fetching by ID
133+ BatchClient clientBatch = Client .builder (apiKey , secret ).build ().batch ();
134+ List <Activity > deletedActivity1 = clientBatch .getActivitiesByID (activity1Res .getID ()).join ();
135+ assertEquals (0 , deletedActivity1 .size ());
136+
137+ // read feeds
138+ // without discardDeletedActivities
139+ activities =feed .getActivities (
140+ new Limit (69 ), new Filter ()).join ();
141+ assertEquals (2 , activities .size ());
142+
143+
144+ activities =feed .getActivities (
145+ new Limit (10 ), new Filter ().discardDeletedActivities ()).join ();
146+ assertEquals (0 , activities .size ());
147+
148+ activities =feedAlice .getActivities (
149+ new Limit (10 ), new Filter ().discardDeletedActivities ()).join ();
150+ assertEquals (1 , activities .size ());
151+ }
83152}
0 commit comments