66use SplitIO \Sdk \Impressions \Impression ;
77use SplitIO \Test \Suite \Redis \ReflectiveTools ;
88use SplitIO \Component \Cache \ImpressionCache ;
9+ use SplitIO \Sdk \QueueMetadataMessage ;
910
1011class ImpressionsTest extends \PHPUnit_Framework_TestCase
1112{
@@ -26,6 +27,7 @@ public function testImpressionsAreAdded()
2627 $ redisClient = ReflectiveTools::clientFromCachePool (Di::getCache ());
2728
2829 $ redisClient ->del (ImpressionCache::IMPRESSIONS_QUEUE_KEY );
30+ $ queueMetadata = new QueueMetadataMessage ();
2931
3032 TreatmentImpression::log (new Impression (
3133 'someMatchingKey ' ,
@@ -35,7 +37,7 @@ public function testImpressionsAreAdded()
3537 123456 ,
3638 321654 ,
3739 'someBucketingKey '
38- ));
40+ ), $ queueMetadata );
3941
4042 // Assert that the TTL is within a 10-second range (between it was set and retrieved).
4143 $ ttl = $ redisClient ->ttl (ImpressionCache::IMPRESSIONS_QUEUE_KEY );
@@ -47,6 +49,7 @@ public function testImpressionsAreAdded()
4749
4850 $ this ->assertEquals ($ decoded ['m ' ]['s ' ], 'php- ' .\Splitio \version ());
4951 $ this ->assertEquals ($ decoded ['m ' ]['i ' ], 'unknown ' );
52+ $ this ->assertEquals ($ decoded ['m ' ]['n ' ], 'unknown ' );
5053 $ this ->assertEquals ($ decoded ['i ' ]['k ' ], 'someMatchingKey ' );
5154 $ this ->assertEquals ($ decoded ['i ' ]['b ' ], 'someBucketingKey ' );
5255 $ this ->assertEquals ($ decoded ['i ' ]['f ' ], 'someFeature ' );
@@ -64,14 +67,16 @@ public function testExpirationOnlyOccursOnce()
6467
6568 $ sdkConfig = array (
6669 'log ' => array ('adapter ' => 'stdout ' ),
67- 'cache ' => array ('adapter ' => 'predis ' , 'parameters ' => $ parameters , 'options ' => $ options )
70+ 'cache ' => array ('adapter ' => 'predis ' , 'parameters ' => $ parameters , 'options ' => $ options ),
71+ 'IPAddressEnabled ' => false
6872 );
6973
7074 //Initializing the SDK instance.
7175 \SplitIO \Sdk::factory ('asdqwe123456 ' , $ sdkConfig );
7276
7377 $ redisClient = ReflectiveTools::clientFromCachePool (Di::getCache ());
7478 $ redisClient ->del (ImpressionCache::IMPRESSIONS_QUEUE_KEY );
79+ $ queueMetadata = new QueueMetadataMessage (false );
7580
7681 TreatmentImpression::log (new Impression (
7782 'someMatchingKey ' ,
@@ -81,7 +86,7 @@ public function testExpirationOnlyOccursOnce()
8186 123456 ,
8287 321654 ,
8388 'someBucketingKey '
84- ));
89+ ), $ queueMetadata );
8590
8691 sleep (3 );
8792
@@ -93,11 +98,25 @@ public function testExpirationOnlyOccursOnce()
9398 123456 ,
9499 321654 ,
95100 'someBucketingKey '
96- ));
101+ ), $ queueMetadata );
97102
98103 $ ttl = $ redisClient ->ttl (ImpressionCache::IMPRESSIONS_QUEUE_KEY );
99104 // $ttl should be lower than or equalt the default impressions TTL minus 3 seconds,
100105 // since it should have not been resetted with the last imrpession logged.
101106 $ this ->assertLessThanOrEqual (ImpressionCache::IMPRESSION_KEY_DEFAULT_TTL - 3 , $ ttl );
107+
108+ $ imp = $ redisClient ->rpop (ImpressionCache::IMPRESSIONS_QUEUE_KEY );
109+ $ decoded = json_decode ($ imp , true );
110+
111+ $ this ->assertEquals ($ decoded ['m ' ]['s ' ], 'php- ' .\Splitio \version ());
112+ $ this ->assertEquals ($ decoded ['m ' ]['i ' ], 'NA ' );
113+ $ this ->assertEquals ($ decoded ['m ' ]['n ' ], 'NA ' );
114+ $ this ->assertEquals ($ decoded ['i ' ]['k ' ], 'someMatchingKey ' );
115+ $ this ->assertEquals ($ decoded ['i ' ]['b ' ], 'someBucketingKey ' );
116+ $ this ->assertEquals ($ decoded ['i ' ]['f ' ], 'someFeature ' );
117+ $ this ->assertEquals ($ decoded ['i ' ]['t ' ], 'on ' );
118+ $ this ->assertEquals ($ decoded ['i ' ]['r ' ], 'label1 ' );
119+ $ this ->assertEquals ($ decoded ['i ' ]['m ' ], 123456 );
120+ $ this ->assertEquals ($ decoded ['i ' ]['c ' ], 321654 );
102121 }
103122}
0 commit comments