From 85f4ed45aa56263b0f716892dc9b4c1e256fc596 Mon Sep 17 00:00:00 2001 From: Bill Al Date: Tue, 10 Feb 2026 09:47:26 -0800 Subject: [PATCH 1/4] remove redis imp prop for tapp test --- Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs b/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs index b5f9990f..381e53a0 100644 --- a/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs +++ b/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs @@ -81,10 +81,10 @@ public async Task RecordImpressionsCountAsync(Dictionary impression // public for tests public RedisValue[] GetImpressions(IList items) { - var impressions = items.Select(item => JsonConvertWrapper.SerializeObjectIgnoreNullValue(new + var impressions = items.Select(item => JsonConvertWrapper.SerializeObject(new { m = new { s = SdkVersion, i = MachineIp, n = MachineName }, - i = new { k = item.keyName, b = item.bucketingKey, f = item.feature, t = item.treatment, r = item.label, c = item.changeNumber, m = item.time, pt = item.previousTime, properties = item.properties } + i = new { k = item.keyName, b = item.bucketingKey, f = item.feature, t = item.treatment, r = item.label, c = item.changeNumber, m = item.time, pt = item.previousTime } })); return impressions From 79783eb37f6327d4bd4353d56fa1e39691afc52f Mon Sep 17 00:00:00 2001 From: Bill Al Date: Tue, 10 Feb 2026 10:09:46 -0800 Subject: [PATCH 2/4] disable redis imp prop test --- .../Unit Tests/Impressions/RedisImpressionsCacheTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs b/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs index b1addd5c..fb0c4ace 100644 --- a/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs +++ b/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs @@ -107,14 +107,14 @@ public void CorrectFormatStoreImpressions() // Act. var result = _cache.GetImpressions(impressions); - var impression1 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-1\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546}}"; + var impression1 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-1\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546,\"pt\":null}}"; var impression2 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-1\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534550,\"pt\":34534546}}"; var impression3 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-2\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546,\"properties\":\"{\\\"prop\\\":\\\"val\\\"}\"}}"; // Assert. Assert.AreEqual(impression1, result[0].ToString()); Assert.AreEqual(impression2, result[1].ToString()); - Assert.AreEqual(impression3, result[2].ToString()); +// Assert.AreEqual(impression3, result[2].ToString()); } } } From 86e55e1fe60a6af1338da18a62f3eb82057ae3aa Mon Sep 17 00:00:00 2001 From: Bill Al Date: Tue, 10 Feb 2026 10:31:36 -0800 Subject: [PATCH 3/4] set version to rc3 --- Splitio.Redis/Splitio.Redis.csproj | 2 +- src/Splitio/Splitio.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Splitio.Redis/Splitio.Redis.csproj b/Splitio.Redis/Splitio.Redis.csproj index ed6c646d..86a9c499 100644 --- a/Splitio.Redis/Splitio.Redis.csproj +++ b/Splitio.Redis/Splitio.Redis.csproj @@ -7,7 +7,7 @@ false false false - 7.13.0-rc2 + 7.13.0-rc3 true SplitioRedis.snk Apache-2.0 diff --git a/src/Splitio/Splitio.csproj b/src/Splitio/Splitio.csproj index 8f059f77..6a19977a 100644 --- a/src/Splitio/Splitio.csproj +++ b/src/Splitio/Splitio.csproj @@ -7,7 +7,7 @@ false false false - 7.13.0-rc2 + 7.13.0-rc3 Splitio true Splitio.snk From de5b14f9b84de94b578ebd912376a6cc2c1c2242 Mon Sep 17 00:00:00 2001 From: Bill Al Date: Tue, 10 Feb 2026 13:25:55 -0800 Subject: [PATCH 4/4] removed using newtonsoft serializer in redis impression --- .../Cache/Classes/RedisImpressionsCache.cs | 7 +-- .../Services/Domain/RedisKeyImpression.cs | 57 +++++++++++++++++++ Splitio.Redis/Splitio.Redis.csproj | 2 +- src/Splitio/Splitio.csproj | 2 +- .../Impressions/RedisImpressionsCacheTests.cs | 4 +- 5 files changed, 63 insertions(+), 9 deletions(-) create mode 100644 Splitio.Redis/Services/Domain/RedisKeyImpression.cs diff --git a/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs b/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs index 381e53a0..503d919e 100644 --- a/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs +++ b/Splitio.Redis/Services/Cache/Classes/RedisImpressionsCache.cs @@ -1,4 +1,5 @@ using Splitio.Domain; +using Splitio.Redis.Domain; using Splitio.Redis.Services.Cache.Interfaces; using Splitio.Redis.Services.Domain; using Splitio.Services.Shared.Classes; @@ -81,11 +82,7 @@ public async Task RecordImpressionsCountAsync(Dictionary impression // public for tests public RedisValue[] GetImpressions(IList items) { - var impressions = items.Select(item => JsonConvertWrapper.SerializeObject(new - { - m = new { s = SdkVersion, i = MachineIp, n = MachineName }, - i = new { k = item.keyName, b = item.bucketingKey, f = item.feature, t = item.treatment, r = item.label, c = item.changeNumber, m = item.time, pt = item.previousTime } - })); + var impressions = items.Select(item => new RedisKeyImpression(item, SdkVersion, MachineIp, MachineName).ExportJson()); return impressions .Select(i => (RedisValue)i) diff --git a/Splitio.Redis/Services/Domain/RedisKeyImpression.cs b/Splitio.Redis/Services/Domain/RedisKeyImpression.cs new file mode 100644 index 00000000..8c575e40 --- /dev/null +++ b/Splitio.Redis/Services/Domain/RedisKeyImpression.cs @@ -0,0 +1,57 @@ +using Splitio.Domain; +using Splitio.Services.Shared.Classes; + +namespace Splitio.Redis.Domain +{ + public class RedisKeyImpression + { + public RedisKeyImpression(KeyImpression item, string SdkVersion, string MachineIp, string MachineName) + { + this.f = item.feature; + k = item.keyName; + this.t = item.treatment; + this.m = item.time; + this.c = item.changeNumber; + this.r = item.label; + this.b = item.bucketingKey; + this.pt = item.previousTime; + this.properties = item.properties; + this.s = SdkVersion; + this.i = MachineIp; + this.n = MachineName; + } + + public string ExportJson() + { + if (string.IsNullOrEmpty(this.properties)) + { + return JsonConvertWrapper.SerializeObject(new + { + m = new { s = this.s, i = this.i, n = this.n }, + i = new { k = this.k, b = this.b, f = this.f, t = this.t, r = this.r, c = this.c, m = this.m, pt = this.pt } + }); + } else { + return JsonConvertWrapper.SerializeObject(new + { + m = new { s = this.s, i = this.i, n = this.n }, + i = new { k = this.k, b = this.b, f = this.f, t = this.t, r = this.r, c = this.c, m = this.m, pt = this.pt, properties = this.properties } + }); + } + } + + public string f { get; set; } + public string k { get; set; } + public string t { get; set; } + public long m { get; set; } + public long? c { get; set; } + public string r { get; set; } + public string b { get; set; } + public long? pt { get; set; } + public string properties { get; set; } + + public string s { get; set; } + public string i { get; set; } + public string n { get; set; } + + } +} diff --git a/Splitio.Redis/Splitio.Redis.csproj b/Splitio.Redis/Splitio.Redis.csproj index 86a9c499..68bc87e5 100644 --- a/Splitio.Redis/Splitio.Redis.csproj +++ b/Splitio.Redis/Splitio.Redis.csproj @@ -7,7 +7,7 @@ false false false - 7.13.0-rc3 + 7.13.0-rc4 true SplitioRedis.snk Apache-2.0 diff --git a/src/Splitio/Splitio.csproj b/src/Splitio/Splitio.csproj index 6a19977a..cf481d2a 100644 --- a/src/Splitio/Splitio.csproj +++ b/src/Splitio/Splitio.csproj @@ -7,7 +7,7 @@ false false false - 7.13.0-rc3 + 7.13.0-rc4 Splitio true Splitio.snk diff --git a/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs b/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs index fb0c4ace..4d84d7d6 100644 --- a/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs +++ b/tests/Splitio-tests/Unit Tests/Impressions/RedisImpressionsCacheTests.cs @@ -109,12 +109,12 @@ public void CorrectFormatStoreImpressions() var result = _cache.GetImpressions(impressions); var impression1 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-1\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546,\"pt\":null}}"; var impression2 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-1\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534550,\"pt\":34534546}}"; - var impression3 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-2\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546,\"properties\":\"{\\\"prop\\\":\\\"val\\\"}\"}}"; + var impression3 = "{\"m\":{\"s\":\"version\",\"i\":\"ip\",\"n\":\"mm\"},\"i\":{\"k\":\"matching-key\",\"b\":\"bucketing-key\",\"f\":\"feature-2\",\"t\":\"treatment\",\"r\":\"label\",\"c\":3333444,\"m\":34534546,\"pt\":null,\"properties\":\"{\\\"prop\\\":\\\"val\\\"}\"}}"; // Assert. Assert.AreEqual(impression1, result[0].ToString()); Assert.AreEqual(impression2, result[1].ToString()); -// Assert.AreEqual(impression3, result[2].ToString()); + Assert.AreEqual(impression3, result[2].ToString()); } } }