33import akka .actor .ActorRef ;
44import akka .actor .ActorSystem ;
55import com .google .protobuf .ByteString ;
6+ import com .google .protobuf .Timestamp ;
67import io .numaproj .numaflow .reduce .v1 .ReduceOuterClass ;
7- import io .numaproj .numaflow .reducer .metadata .IntervalWindowImpl ;
8- import io .numaproj .numaflow .reducer .metadata .MetadataImpl ;
98import org .junit .Test ;
109
11- import java .time .Instant ;
1210import java .util .Arrays ;
1311import java .util .List ;
1412import java .util .concurrent .CompletableFuture ;
@@ -29,14 +27,11 @@ public void given_inputRequestsShareSameKeys_when_supervisorActorBroadcasts_then
2927 .actorOf (ReduceShutdownActor
3028 .props (completableFuture ));
3129
32- Metadata md = new MetadataImpl (
33- new IntervalWindowImpl (Instant .now (), Instant .now ()));
34-
3530 ReduceOutputStreamObserver outputStreamObserver = new ReduceOutputStreamObserver ();
3631
3732 ActorRef supervisorActor = actorSystem
3833 .actorOf (ReduceSupervisorActor
39- .props (new TestReducerFactory (), md , shutdownActor , outputStreamObserver ));
34+ .props (new TestReducerFactory (), shutdownActor , outputStreamObserver ));
4035
4136 for (int i = 1 ; i <= 10 ; i ++) {
4237 ActorRequest reduceRequest = new ActorRequest (ReduceOuterClass .ReduceRequest
@@ -47,6 +42,15 @@ public void given_inputRequestsShareSameKeys_when_supervisorActorBroadcasts_then
4742 .addAllKeys (Arrays .asList ("key-1" , "key-2" ))
4843 .setValue (ByteString .copyFromUtf8 (String .valueOf (i )))
4944 .build ())
45+ .setOperation (ReduceOuterClass .ReduceRequest .WindowOperation
46+ .newBuilder ()
47+ .addWindows (
48+ ReduceOuterClass .Window
49+ .newBuilder ()
50+ .setStart (Timestamp .newBuilder ().setSeconds (60000 ).build ())
51+ .setEnd (Timestamp .newBuilder ().setSeconds (60000 ).build ())
52+ .build ()
53+ ))
5054 .build ());
5155 supervisorActor .tell (reduceRequest , ActorRef .noSender ());
5256 }
@@ -57,11 +61,12 @@ public void given_inputRequestsShareSameKeys_when_supervisorActorBroadcasts_then
5761 List <ReduceOuterClass .ReduceResponse > result = outputStreamObserver .resultDatum .get ();
5862 // the observer should receive 2 messages, one is the aggregated result, the other is the EOF response.
5963 assertEquals (2 , result .size ());
60- assertEquals ("10" , result
61- .get (0 )
62- .getResult ()
63- .getValue ()
64- .toStringUtf8 ());
64+ assertEquals (
65+ "10" , result
66+ .get (0 )
67+ .getResult ()
68+ .getValue ()
69+ .toStringUtf8 ());
6570 assertTrue (result
6671 .get (1 )
6772 .getEOF ());
@@ -80,15 +85,11 @@ public void given_inputRequestsHaveDifferentKeySets_when_supervisorActorBroadcas
8085 .actorOf (ReduceShutdownActor
8186 .props (completableFuture ));
8287
83- Metadata md = new MetadataImpl (
84- new IntervalWindowImpl (Instant .now (), Instant .now ()));
85-
8688 ReduceOutputStreamObserver outputStreamObserver = new ReduceOutputStreamObserver ();
8789 ActorRef supervisorActor = actorSystem
8890 .actorOf (ReduceSupervisorActor
8991 .props (
9092 new TestReducerFactory (),
91- md ,
9293 shutdownActor ,
9394 outputStreamObserver )
9495 );
@@ -102,6 +103,15 @@ public void given_inputRequestsHaveDifferentKeySets_when_supervisorActorBroadcas
102103 .addAllKeys (Arrays .asList ("shared-key" , "unique-key-" + i ))
103104 .setValue (ByteString .copyFromUtf8 (String .valueOf (i )))
104105 .build ())
106+ .setOperation (ReduceOuterClass .ReduceRequest .WindowOperation
107+ .newBuilder ()
108+ .addWindows (
109+ ReduceOuterClass .Window
110+ .newBuilder ()
111+ .setStart (Timestamp .newBuilder ().setSeconds (60000 ).build ())
112+ .setEnd (Timestamp .newBuilder ().setSeconds (60000 ).build ())
113+ .build ()
114+ ))
105115 .build ());
106116 supervisorActor .tell (reduceRequest , ActorRef .noSender ());
107117 }
0 commit comments