1
+ package io .split .engine .sse ;
2
+
3
+ import io .split .client .dtos .RuleBasedSegment ;
4
+ import io .split .client .dtos .Split ;
5
+ import io .split .client .dtos .Status ;
6
+ import io .split .client .utils .Json ;
7
+ import io .split .engine .sse .dtos .CommonChangeNotification ;
8
+ import io .split .engine .sse .dtos .GenericNotificationData ;
9
+ import io .split .engine .sse .dtos .IncomingNotification ;
10
+ import io .split .engine .sse .dtos .RawMessageNotification ;
11
+ import io .split .engine .sse .enums .CompressType ;
12
+ import org .junit .Assert ;
13
+ import org .junit .Test ;
14
+
15
+ public class CommonChangeNotificationTest {
16
+
17
+ @ Test
18
+ public void testFeatureFlagNotification () {
19
+ String notification = "{\" id\" :\" vQQ61wzBRO:0:0\" ,\" clientId\" :\" pri:MTUxNzg3MDg1OQ==\" ,\" timestamp\" :1684265694676,\" encoding\" :\" json\" ,\" channel\" :\" NzM2MDI5Mzc0_MjkyNTIzNjczMw==_splits\" ,\" data\" :\" {\\ \" type\\ \" :\\ \" SPLIT_UPDATE\\ \" ,\\ \" changeNumber\\ \" :1684265694505,\\ \" pcn\\ \" :0,\\ \" c\\ \" :2,\\ \" d\\ \" :\\ \" eJzMk99u2kwQxV8lOtdryQZj8N6hD5QPlThSTVNVEUKDPYZt1jZar1OlyO9emf8lVFWv2ss5zJyd82O8hTWUZSqZvW04opwhUVdsIKBSSKR+10vS1HWW7pIdz2NyBjRwHS8IXEopTLgbQqDYT+ZUm3LxlV4J4mg81LpMyKqygPRc94YeM6eQTtjphp4fegLVXvD6Qdjt9wPXF6gs2bqCxPC/2eRpDIEXpXXblpGuWCDljGptZ4bJ5lxYSJRZBoFkTcWKozpfsoH0goHfCXpB6PfcngDpVQnZEUjKIlOr2uwWqiC3zU5L1aF+3p7LFhUkPv8/mY2nk3gGgZxssmZzb8p6A9n25ktVtA9iGI3ODXunQ3HDp+AVWT6F+rZWlrWq7MN+YkSWWvuTDvkMSnNV7J6oTdl6qKTEvGnmjcCGjL2IYC/ovPYgUKnvvPtbmrmApiVryLM7p2jE++AfH6fTx09/HvuF32LWnNjStM0Xh3c8ukZcsZlEi3h8/zCObsBpJ0acqYLTmFdtqitK1V6NzrfpdPBbLmVx4uK26e27izpDu/r5yf/16AXun2Cr4u6w591xw7+LfDidLj6Mv8TXwP8xbofv/c7UmtHMmx8BAAD//0fclvU=\\ \" }\" }" ;
20
+ RawMessageNotification rawMessageNotification = Json .fromJson (notification , RawMessageNotification .class );
21
+ GenericNotificationData genericNotificationData = Json .fromJson (rawMessageNotification .getData (), GenericNotificationData .class );
22
+
23
+ CommonChangeNotification <Split > featureFlagChangeNotification = new CommonChangeNotification (genericNotificationData , Split .class );
24
+ Assert .assertEquals (IncomingNotification .Type .SPLIT_UPDATE , featureFlagChangeNotification .getType ());
25
+ Assert .assertEquals (1684265694505L , featureFlagChangeNotification .getChangeNumber ());
26
+ Assert .assertEquals (CompressType .ZLIB , featureFlagChangeNotification .getCompressType ());
27
+ Assert .assertEquals (0L , featureFlagChangeNotification .getPreviousChangeNumber ());
28
+ Assert .assertEquals ("mauro_java" , featureFlagChangeNotification .getDefinition ().name );
29
+ Assert .assertEquals (-1769377604 , featureFlagChangeNotification .getDefinition ().seed );
30
+ }
31
+
32
+ @ Test
33
+ public void testRuleBasedSegmentNotification () {
34
+ String notification = "{\" id\" :\" vQQ61wzBRO:0:0\" ,\" clientId\" :\" pri:MTUxNzg3MDg1OQ==\" ,\" timestamp\" :1684265694676,\" encoding\" :\" json\" ,\" channel\" :\" NzM2MDI5Mzc0_MjkyNTIzNjczMw==_splits\" ,\" data\" :\" {\\ \" type\\ \" :\\ \" RB_SEGMENT_UPDATE\\ \" ,\\ \" changeNumber\\ \" :1684265694505,\\ \" pcn\\ \" :0,\\ \" c\\ \" :0,\\ \" d\\ \" :\\ \" eyJjaGFuZ2VOdW1iZXIiOiA1LCAibmFtZSI6ICJzYW1wbGVfcnVsZV9iYXNlZF9zZWdtZW50IiwgInN0YXR1cyI6ICJBQ1RJVkUiLCAidHJhZmZpY1R5cGVOYW1lIjogInVzZXIiLCAiZXhjbHVkZWQiOiB7ImtleXMiOiBbIm1hdXJvQHNwbGl0LmlvIiwgImdhc3RvbkBzcGxpdC5pbyJdLCAic2VnbWVudHMiOiBbXX0sICJjb25kaXRpb25zIjogW3sibWF0Y2hlckdyb3VwIjogeyJjb21iaW5lciI6ICJBTkQiLCAibWF0Y2hlcnMiOiBbeyJrZXlTZWxlY3RvciI6IHsidHJhZmZpY1R5cGUiOiAidXNlciIsICJhdHRyaWJ1dGUiOiAiZW1haWwifSwgIm1hdGNoZXJUeXBlIjogIkVORFNfV0lUSCIsICJuZWdhdGUiOiBmYWxzZSwgIndoaXRlbGlzdE1hdGNoZXJEYXRhIjogeyJ3aGl0ZWxpc3QiOiBbIkBzcGxpdC5pbyJdfX1dfX1dfQ==\\ \" }\" }" ;
35
+ RawMessageNotification rawMessageNotification = Json .fromJson (notification , RawMessageNotification .class );
36
+ GenericNotificationData genericNotificationData = Json .fromJson (rawMessageNotification .getData (), GenericNotificationData .class );
37
+
38
+ CommonChangeNotification <RuleBasedSegment > ruleBasedSegmentCommonChangeNotification = new CommonChangeNotification (genericNotificationData , RuleBasedSegment .class );
39
+ Assert .assertEquals (IncomingNotification .Type .RB_SEGMENT_UPDATE , ruleBasedSegmentCommonChangeNotification .getType ());
40
+ Assert .assertEquals (1684265694505L , ruleBasedSegmentCommonChangeNotification .getChangeNumber ());
41
+ Assert .assertEquals (CompressType .NOT_COMPRESSED , ruleBasedSegmentCommonChangeNotification .getCompressType ());
42
+ Assert .assertEquals (0L , ruleBasedSegmentCommonChangeNotification .getPreviousChangeNumber ());
43
+ Assert .assertEquals ("sample_rule_based_segment" , ruleBasedSegmentCommonChangeNotification .getDefinition ().name );
44
+ Assert .assertEquals (Status .ACTIVE , ruleBasedSegmentCommonChangeNotification .getDefinition ().status );
45
+ }
46
+ }
0 commit comments