@@ -184,6 +184,56 @@ func TestUnicornAggregator(t *testing.T) {
184184 }
185185}
186186
187+ func TestUnicornAggregatorWithTestdata (t * testing.T ) {
188+ rand .Seed (time .Now ().UTC ().UnixNano ())
189+ dsub := & testSubmitter {
190+ Data : make ([]string , 0 ),
191+ }
192+ f := MakeUnicornAggregator (dsub , 500 * time .Millisecond , false )
193+ f .EnableTestFlow ("1.2.3.4" , "5.6.7.8" , 33333 )
194+ f .Run ()
195+
196+ for {
197+ if dsub .GetTotalAggs () < 1 {
198+ log .Debug (dsub .GetTotalAggs ())
199+ time .Sleep (100 * time .Millisecond )
200+ } else {
201+ break
202+ }
203+ }
204+
205+ consumeWaitChan := make (chan bool )
206+ f .Stop (consumeWaitChan )
207+ <- consumeWaitChan
208+
209+ var d UnicornAggregate
210+
211+ err := json .Unmarshal ([]byte (dsub .Data [0 ]), & d )
212+ if err != nil {
213+ t .Fatal (err )
214+ }
215+ if v , ok := d .FlowTuples ["1.2.3.4_5.6.7.8_33333" ]; ok {
216+ if val , ok := v ["count" ]; ok {
217+ if val != 20 {
218+ t .Fatalf ("wrong value: %v" , val )
219+ }
220+ }
221+ if val , ok := v ["total_bytes_toclient" ]; ok {
222+ if val != 23 {
223+ t .Fatalf ("wrong value: %v" , val )
224+ }
225+ }
226+ if val , ok := v ["total_bytes_toserver" ]; ok {
227+ if val != 42 {
228+ t .Fatalf ("wrong value: %v" , val )
229+ }
230+ }
231+ } else {
232+ t .Fatalf ("missing key in map: %v" , d .FlowTuples )
233+ }
234+
235+ }
236+
187237func TestUnicornAggregatorWithDispatch (t * testing.T ) {
188238 rand .Seed (time .Now ().UTC ().UnixNano ())
189239 dsub := & testSubmitter {
0 commit comments