@@ -522,87 +522,94 @@ TEST_F(AnalyticsTest, SendAndReceiveMultipleEventsQueued)
522
522
status = InvokeServiceMethod (" org.rdk.System" , " setTimeZoneDST" , paramsJson, resultJson);
523
523
EXPECT_EQ (status, Core::ERROR_NONE);
524
524
525
- for (int i = 0 ; i < eventsSentNbr; i += eventsRcvMaxDfl) {
526
- string eventMsg = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
527
- EXPECT_NE (eventMsg, " " );
528
-
529
- // Check if the event message contains the expected fields
530
- JsonArray eventArray;
531
- eventArray.FromString (eventMsg);
532
- EXPECT_EQ (eventArray.Length (), eventsRcvMaxDfl);
533
-
534
- for (int n = 0 ; n < eventsRcvMaxDfl; ++n) {
535
- JsonObject eventObj = eventArray[n].Object ();
536
-
537
- EXPECT_TRUE (eventObj.HasLabel (" common_schema" ));
538
- EXPECT_TRUE (eventObj.HasLabel (" env" ));
539
- EXPECT_TRUE (eventObj.HasLabel (" product_name" ));
540
- EXPECT_TRUE (eventObj.HasLabel (" product_version" ));
541
- EXPECT_TRUE (eventObj.HasLabel (" event_schema" ));
542
- EXPECT_TRUE (eventObj.HasLabel (" event_name" ));
543
- EXPECT_TRUE (eventObj.HasLabel (" timestamp" ));
544
- EXPECT_TRUE (eventObj.HasLabel (" event_id" ));
545
- EXPECT_TRUE (eventObj.HasLabel (" event_source" ));
546
- EXPECT_TRUE (eventObj.HasLabel (" event_source_version" ));
547
- EXPECT_TRUE (eventObj.HasLabel (" logger_name" ));
548
- EXPECT_TRUE (eventObj.HasLabel (" logger_version" ));
549
- EXPECT_TRUE (eventObj.HasLabel (" partner_id" ));
550
- EXPECT_TRUE (eventObj.HasLabel (" device_model" ));
551
- EXPECT_TRUE (eventObj.HasLabel (" device_type" ));
552
- EXPECT_TRUE (eventObj.HasLabel (" device_timezone" ));
553
- EXPECT_TRUE (eventObj.HasLabel (" device_os_name" ));
554
- EXPECT_TRUE (eventObj.HasLabel (" device_os_version" ));
555
- EXPECT_TRUE (eventObj.HasLabel (" platform" ));
556
- EXPECT_TRUE (eventObj.HasLabel (" device_manufacturer" ));
557
- EXPECT_TRUE (eventObj.HasLabel (" authenticated" ));
558
- EXPECT_TRUE (eventObj.HasLabel (" session_id" ));
559
- EXPECT_TRUE (eventObj.HasLabel (" proposition" ));
560
- EXPECT_TRUE (eventObj.HasLabel (" retailer" ));
561
- EXPECT_TRUE (eventObj.HasLabel (" jv_agent" ));
562
- EXPECT_TRUE (eventObj.HasLabel (" coam" ));
563
- EXPECT_TRUE (eventObj.HasLabel (" device_serial_number" ));
564
- EXPECT_TRUE (eventObj.HasLabel (" device_mac_address" ));
565
- EXPECT_TRUE (eventObj.HasLabel (" country" ));
566
- EXPECT_TRUE (eventObj.HasLabel (" region" ));
567
- EXPECT_TRUE (eventObj.HasLabel (" account_type" ));
568
- EXPECT_TRUE (eventObj.HasLabel (" operator" ));
569
- EXPECT_TRUE (eventObj.HasLabel (" account_detail_type" ));
570
- EXPECT_TRUE (eventObj.HasLabel (" event_payload" ));
571
-
572
- EXPECT_EQ (eventObj[" common_schema" ].String (), " entos/common/v1" );
573
- EXPECT_EQ (eventObj[" env" ].String (), " prod" );
574
- EXPECT_EQ (eventObj[" product_name" ].String (), " entos" );
575
- EXPECT_EQ (eventObj[" product_version" ].String (), " L2Test_EntertainmentOSVersion" );
576
- EXPECT_EQ (eventObj[" event_schema" ].String (), " entos/L2TestEvent/1" );
577
- EXPECT_EQ (eventObj[" event_name" ].String (), " L2TestEvent" );
578
- EXPECT_EQ (eventObj[" event_source" ].String (), " L2Test" );
579
- EXPECT_EQ (eventObj[" event_source_version" ].String (), " 1.0.0" );
580
- EXPECT_EQ (eventObj[" logger_name" ].String (), " Analytics" );
581
- EXPECT_EQ (eventObj[" partner_id" ].String (), " rdkglobal" );
582
- EXPECT_EQ (eventObj[" device_model" ].String (), " RDK" );
583
- EXPECT_EQ (eventObj[" device_type" ].String (), " STB" );
584
- EXPECT_EQ (eventObj[" device_timezone" ].Number (), -14400000 );
585
- EXPECT_EQ (eventObj[" device_os_name" ].String (), " rdk" );
586
- EXPECT_EQ (eventObj[" device_os_version" ].String (), " L2Test_STB" );
587
- EXPECT_EQ (eventObj[" platform" ].String (), " L2Test_Proposition" );
588
- EXPECT_EQ (eventObj[" device_manufacturer" ].String (), " L2Test_Manufacturer" );
589
- EXPECT_EQ (eventObj[" proposition" ].String (), " L2Test_Proposition" );
590
- EXPECT_EQ (eventObj[" retailer" ].String (), " L2Test_Retailer" );
591
- EXPECT_EQ (eventObj[" jv_agent" ].String (), " L2Test_JVAgent" );
592
- EXPECT_EQ (eventObj[" coam" ].Boolean (), true );
593
- EXPECT_EQ (eventObj[" device_serial_number" ].String (), " L2Test_SerialNumber" );
594
- EXPECT_EQ (eventObj[" device_mac_address" ].String (), " 01:02:03:04:05:06" );
595
- EXPECT_EQ (eventObj[" country" ].String (), " USA" );
596
- EXPECT_EQ (eventObj[" region" ].String (), " US-USA" );
597
- EXPECT_EQ (eventObj[" account_type" ].String (), " L2Test_AccountType" );
598
- EXPECT_EQ (eventObj[" operator" ].String (), " L2Test_Operator" );
599
- EXPECT_EQ (eventObj[" account_detail_type" ].String (), " L2Test_DetailType" );
600
-
601
- JsonObject eventPayloadObj = eventObj[" event_payload" ].Object ();
602
- EXPECT_TRUE (eventPayloadObj.HasLabel (" data" ));
603
- EXPECT_EQ (eventPayloadObj[" data" ].String (), " random data" );
525
+ // Collect all events
526
+ eventMsg = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
527
+ JsonArray eventArray;
528
+ eventArray.FromString (eventMsg);
529
+ int retry = eventsSentNbr;
530
+ while (eventArray.Length () < eventsSentNbr && retry-- > 0 ) {
531
+ // If not all events are received, wait for the rest
532
+ string eventsMsg2 = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
533
+ JsonArray eventArray2;
534
+ eventArray2.FromString (eventsMsg2);
535
+ for (int i = 0 ; i < eventArray2.Length (); ++i) {
536
+ eventArray.Add (eventArray2[i]);
604
537
}
605
538
}
539
+
540
+ EXPECT_EQ (eventArray.Length (), eventsSentNbr);
541
+
542
+ for (int n = 0 ; n < eventsSentNbr; ++n) {
543
+ JsonObject eventObj = eventArray[n].Object ();
544
+
545
+ EXPECT_TRUE (eventObj.HasLabel (" common_schema" ));
546
+ EXPECT_TRUE (eventObj.HasLabel (" env" ));
547
+ EXPECT_TRUE (eventObj.HasLabel (" product_name" ));
548
+ EXPECT_TRUE (eventObj.HasLabel (" product_version" ));
549
+ EXPECT_TRUE (eventObj.HasLabel (" event_schema" ));
550
+ EXPECT_TRUE (eventObj.HasLabel (" event_name" ));
551
+ EXPECT_TRUE (eventObj.HasLabel (" timestamp" ));
552
+ EXPECT_TRUE (eventObj.HasLabel (" event_id" ));
553
+ EXPECT_TRUE (eventObj.HasLabel (" event_source" ));
554
+ EXPECT_TRUE (eventObj.HasLabel (" event_source_version" ));
555
+ EXPECT_TRUE (eventObj.HasLabel (" logger_name" ));
556
+ EXPECT_TRUE (eventObj.HasLabel (" logger_version" ));
557
+ EXPECT_TRUE (eventObj.HasLabel (" partner_id" ));
558
+ EXPECT_TRUE (eventObj.HasLabel (" device_model" ));
559
+ EXPECT_TRUE (eventObj.HasLabel (" device_type" ));
560
+ EXPECT_TRUE (eventObj.HasLabel (" device_timezone" ));
561
+ EXPECT_TRUE (eventObj.HasLabel (" device_os_name" ));
562
+ EXPECT_TRUE (eventObj.HasLabel (" device_os_version" ));
563
+ EXPECT_TRUE (eventObj.HasLabel (" platform" ));
564
+ EXPECT_TRUE (eventObj.HasLabel (" device_manufacturer" ));
565
+ EXPECT_TRUE (eventObj.HasLabel (" authenticated" ));
566
+ EXPECT_TRUE (eventObj.HasLabel (" session_id" ));
567
+ EXPECT_TRUE (eventObj.HasLabel (" proposition" ));
568
+ EXPECT_TRUE (eventObj.HasLabel (" retailer" ));
569
+ EXPECT_TRUE (eventObj.HasLabel (" jv_agent" ));
570
+ EXPECT_TRUE (eventObj.HasLabel (" coam" ));
571
+ EXPECT_TRUE (eventObj.HasLabel (" device_serial_number" ));
572
+ EXPECT_TRUE (eventObj.HasLabel (" device_mac_address" ));
573
+ EXPECT_TRUE (eventObj.HasLabel (" country" ));
574
+ EXPECT_TRUE (eventObj.HasLabel (" region" ));
575
+ EXPECT_TRUE (eventObj.HasLabel (" account_type" ));
576
+ EXPECT_TRUE (eventObj.HasLabel (" operator" ));
577
+ EXPECT_TRUE (eventObj.HasLabel (" account_detail_type" ));
578
+ EXPECT_TRUE (eventObj.HasLabel (" event_payload" ));
579
+
580
+ EXPECT_EQ (eventObj[" common_schema" ].String (), " entos/common/v1" );
581
+ EXPECT_EQ (eventObj[" env" ].String (), " prod" );
582
+ EXPECT_EQ (eventObj[" product_name" ].String (), " entos" );
583
+ EXPECT_EQ (eventObj[" product_version" ].String (), " L2Test_EntertainmentOSVersion" );
584
+ EXPECT_EQ (eventObj[" event_schema" ].String (), " entos/L2TestEvent/1" );
585
+ EXPECT_EQ (eventObj[" event_name" ].String (), " L2TestEvent" );
586
+ EXPECT_EQ (eventObj[" event_source" ].String (), " L2Test" );
587
+ EXPECT_EQ (eventObj[" event_source_version" ].String (), " 1.0.0" );
588
+ EXPECT_EQ (eventObj[" logger_name" ].String (), " Analytics" );
589
+ EXPECT_EQ (eventObj[" partner_id" ].String (), " rdkglobal" );
590
+ EXPECT_EQ (eventObj[" device_model" ].String (), " RDK" );
591
+ EXPECT_EQ (eventObj[" device_type" ].String (), " STB" );
592
+ EXPECT_EQ (eventObj[" device_timezone" ].Number (), -14400000 );
593
+ EXPECT_EQ (eventObj[" device_os_name" ].String (), " rdk" );
594
+ EXPECT_EQ (eventObj[" device_os_version" ].String (), " L2Test_STB" );
595
+ EXPECT_EQ (eventObj[" platform" ].String (), " L2Test_Proposition" );
596
+ EXPECT_EQ (eventObj[" device_manufacturer" ].String (), " L2Test_Manufacturer" );
597
+ EXPECT_EQ (eventObj[" proposition" ].String (), " L2Test_Proposition" );
598
+ EXPECT_EQ (eventObj[" retailer" ].String (), " L2Test_Retailer" );
599
+ EXPECT_EQ (eventObj[" jv_agent" ].String (), " L2Test_JVAgent" );
600
+ EXPECT_EQ (eventObj[" coam" ].Boolean (), true );
601
+ EXPECT_EQ (eventObj[" device_serial_number" ].String (), " L2Test_SerialNumber" );
602
+ EXPECT_EQ (eventObj[" device_mac_address" ].String (), " 01:02:03:04:05:06" );
603
+ EXPECT_EQ (eventObj[" country" ].String (), " USA" );
604
+ EXPECT_EQ (eventObj[" region" ].String (), " US-USA" );
605
+ EXPECT_EQ (eventObj[" account_type" ].String (), " L2Test_AccountType" );
606
+ EXPECT_EQ (eventObj[" operator" ].String (), " L2Test_Operator" );
607
+ EXPECT_EQ (eventObj[" account_detail_type" ].String (), " L2Test_DetailType" );
608
+
609
+ JsonObject eventPayloadObj = eventObj[" event_payload" ].Object ();
610
+ EXPECT_TRUE (eventPayloadObj.HasLabel (" data" ));
611
+ EXPECT_EQ (eventPayloadObj[" data" ].String (), " random data" );
612
+ }
606
613
}
607
614
608
615
TEST_F (AnalyticsTest, SendAndReceiveMultipleEventsTimeOk)
@@ -615,7 +622,7 @@ TEST_F(AnalyticsTest, SendAndReceiveMultipleEventsTimeOk)
615
622
uint32_t status = InvokeServiceMethod (" org.rdk.System" , " setTimeZoneDST" , paramsJson, resultJson);
616
623
EXPECT_EQ (status, Core::ERROR_NONE);
617
624
618
- sleep (3 );
625
+ sleep (5 );
619
626
620
627
paramsJson.Clear ();
621
628
paramsJson[" eventName" ] = " L2TestEvent" ;
@@ -626,22 +633,34 @@ TEST_F(AnalyticsTest, SendAndReceiveMultipleEventsTimeOk)
626
633
eventPayload[" data" ] = " random data" ;
627
634
paramsJson[" eventPayload" ] = eventPayload;
628
635
629
- SiftServerMock siftServer;
630
- EXPECT_TRUE (siftServer.Start ());
631
-
632
636
const int eventsSentNbr = 6 ;
633
637
634
638
for (int i = 0 ; i < eventsSentNbr; ++i) {
635
639
status = InvokeServiceMethod (" org.rdk.Analytics" , " sendEvent" , paramsJson, resultJson);
636
640
EXPECT_EQ (status, Core::ERROR_NONE);
637
641
}
638
642
643
+ // wait for all events to be stored in the analytics store
644
+ sleep (3 );
645
+
646
+ SiftServerMock siftServer;
647
+ EXPECT_TRUE (siftServer.Start ());
648
+
639
649
string eventMsg = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
640
- EXPECT_NE (eventMsg, " " );
641
650
642
651
// Check if the event message contains the expected fields
643
652
JsonArray eventArray;
644
653
eventArray.FromString (eventMsg);
654
+ int retry = eventsSentNbr;
655
+ while (eventArray.Length () < eventsSentNbr && retry-- > 0 ) {
656
+ // If not all events are received, wait for the rest
657
+ string eventMsg2 = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
658
+ JsonArray eventArray2;
659
+ eventArray2.FromString (eventMsg2);
660
+ for (int i = 0 ; i < eventArray2.Length (); ++i) {
661
+ eventArray.Add (eventArray2[i]);
662
+ }
663
+ }
645
664
EXPECT_EQ (eventArray.Length (), eventsSentNbr);
646
665
647
666
for (int n = 0 ; n < eventsSentNbr; ++n) {
@@ -1009,23 +1028,34 @@ TEST_F(AnalyticsTest, EventsMapping)
1009
1028
status = InvokeServiceMethod (" org.rdk.Analytics" , " sendEvent" , paramsJson, resultJson);
1010
1029
EXPECT_EQ (status, Core::ERROR_NONE);
1011
1030
1012
-
1013
- SiftServerMock siftServer;
1014
- EXPECT_TRUE (siftServer.Start ());
1015
-
1016
1031
// Set TimeZone to FINAL what allows event to be decorated and sent to Sift server
1017
1032
paramsJson.Clear ();
1018
1033
paramsJson[" timeZone" ] = " America/New_York" ;
1019
1034
paramsJson[" accuracy" ] = " FINAL" ;
1020
1035
status = InvokeServiceMethod (" org.rdk.System" , " setTimeZoneDST" , paramsJson, resultJson);
1021
1036
EXPECT_EQ (status, Core::ERROR_NONE);
1022
1037
1038
+ // wait for all events to be stored in the analytics store
1039
+ sleep (5 );
1040
+
1041
+ SiftServerMock siftServer;
1042
+ EXPECT_TRUE (siftServer.Start ());
1043
+
1023
1044
string eventsMsg = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
1024
- EXPECT_NE (eventsMsg, " " );
1025
1045
1026
1046
// Check if the event message contains the expected fields
1027
1047
JsonArray eventArray;
1028
1048
eventArray.FromString (eventsMsg);
1049
+ int retry = 3 ;
1050
+ while (eventArray.Length () < 4 && retry-- > 0 ) {
1051
+ // If not all events are received, wait for the rest
1052
+ string eventsMsg2 = siftServer.AwaitData (SIFT_SERVER_TIMEOUT_SEC);
1053
+ JsonArray eventArray2;
1054
+ eventArray2.FromString (eventsMsg2);
1055
+ for (int i = 0 ; i < eventArray2.Length (); ++i) {
1056
+ eventArray.Add (eventArray2[i]);
1057
+ }
1058
+ }
1029
1059
EXPECT_EQ (eventArray.Length (), 4 );
1030
1060
1031
1061
if (eventArray.Length () == 4 ) {
@@ -1046,4 +1076,4 @@ TEST_F(AnalyticsTest, EventsMapping)
1046
1076
EXPECT_EQ (eventObj[" event_name" ].String (), " L2TestEventMappedGenericSourceVersion" );
1047
1077
}
1048
1078
1049
- }
1079
+ }
0 commit comments