From 34da30519d36b7c452dea23b88f3525c7e0c7259 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 17:37:41 -0300 Subject: [PATCH 1/5] Change toString implementation of split_result --- .../lib/split_result.dart | 6 +++--- .../test/split_result_test.dart | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 splitio_platform_interface/test/split_result_test.dart diff --git a/splitio_platform_interface/lib/split_result.dart b/splitio_platform_interface/lib/split_result.dart index 80b452b..f1c0896 100644 --- a/splitio_platform_interface/lib/split_result.dart +++ b/splitio_platform_interface/lib/split_result.dart @@ -13,8 +13,8 @@ class SplitResult { String toString() { return '{"treatment": "' + treatment + - '", config: "' + - (config ?? 'null') + - '"}'; + '", config: ' + + (config != null ? '"$config"' : 'null') + + '}'; } } diff --git a/splitio_platform_interface/test/split_result_test.dart b/splitio_platform_interface/test/split_result_test.dart new file mode 100644 index 0000000..a69928a --- /dev/null +++ b/splitio_platform_interface/test/split_result_test.dart @@ -0,0 +1,20 @@ +import 'package:flutter_test/flutter_test.dart'; +import 'package:splitio_platform_interface/split_result.dart'; + +void main() { + test('result with config', () { + const result = SplitResult('on', 'config'); + + expect(result.treatment, 'on'); + expect(result.config, 'config'); + expect(result.toString(), '{"treatment": "on", config: "config"}'); + }); + + test('result with null config', () { + const result = SplitResult('on', null); + + expect(result.treatment, 'on'); + expect(result.config, null); + expect(result.toString(), '{"treatment": "on", config: null}'); + }); +} From 3b0e582321474efd76196b1d61813ed2f75a79fc Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 17:42:11 -0300 Subject: [PATCH 2/5] defaultTreatment in SplitView --- splitio_platform_interface/lib/split_view.dart | 10 +++++++--- splitio_platform_interface/test/split_view_test.dart | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/splitio_platform_interface/lib/split_view.dart b/splitio_platform_interface/lib/split_view.dart index be05ae0..c89247b 100644 --- a/splitio_platform_interface/lib/split_view.dart +++ b/splitio_platform_interface/lib/split_view.dart @@ -7,9 +7,10 @@ class SplitView { List treatments = []; int changeNumber; Map configs = {}; + String defaultTreatment; SplitView(this.name, this.trafficType, this.killed, this.treatments, - this.changeNumber, this.configs); + this.changeNumber, this.configs, [this.defaultTreatment = '']); static SplitView? fromEntry(Map? entry) { if (entry == null || entry.isEmpty) { @@ -27,7 +28,9 @@ class SplitView { entry['killed'], (entry['treatments'] as List).map((el) => el as String).toList(), entry['changeNumber'], - mappedConfig); + mappedConfig, + entry['defaultTreatment'] ?? '', + ); } @override @@ -38,7 +41,8 @@ class SplitView { killed: $killed, treatments: ${treatments.toString()}, changeNumber: $changeNumber, - config: $configs + config: $configs, + defaultTreatment: $defaultTreatment }'''; } } diff --git a/splitio_platform_interface/test/split_view_test.dart b/splitio_platform_interface/test/split_view_test.dart index 0268b42..50701e9 100644 --- a/splitio_platform_interface/test/split_view_test.dart +++ b/splitio_platform_interface/test/split_view_test.dart @@ -22,6 +22,7 @@ void main() { 'configs': {'yes': '{"abc"}', 'no': '"wasd"'}, 'changeNumber': 156246, 'trafficType': 'default', + 'defaultTreatment': 'on', }); expect(splitView?.name, 'my_split'); @@ -30,5 +31,6 @@ void main() { expect(splitView?.configs, {'yes': '{"abc"}', 'no': '"wasd"'}); expect(splitView?.changeNumber, 156246); expect(splitView?.trafficType, 'default'); + expect(splitView?.defaultTreatment, 'on'); }); } From f8a5060ab155a9f925bbeaa0a64d36f94636ac11 Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 17:46:13 -0300 Subject: [PATCH 3/5] Add sets to SplitView --- splitio_platform_interface/lib/split_view.dart | 9 ++++++--- splitio_platform_interface/test/split_view_test.dart | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/splitio_platform_interface/lib/split_view.dart b/splitio_platform_interface/lib/split_view.dart index c89247b..40451c5 100644 --- a/splitio_platform_interface/lib/split_view.dart +++ b/splitio_platform_interface/lib/split_view.dart @@ -8,9 +8,11 @@ class SplitView { int changeNumber; Map configs = {}; String defaultTreatment; + List sets = []; SplitView(this.name, this.trafficType, this.killed, this.treatments, - this.changeNumber, this.configs, [this.defaultTreatment = '']); + this.changeNumber, this.configs, + [this.defaultTreatment = '', this.sets = const []]); static SplitView? fromEntry(Map? entry) { if (entry == null || entry.isEmpty) { @@ -30,7 +32,7 @@ class SplitView { entry['changeNumber'], mappedConfig, entry['defaultTreatment'] ?? '', - ); + entry['sets'] ?? []); } @override @@ -42,7 +44,8 @@ class SplitView { treatments: ${treatments.toString()}, changeNumber: $changeNumber, config: $configs, - defaultTreatment: $defaultTreatment + defaultTreatment: $defaultTreatment, + sets: ${sets.toString()} }'''; } } diff --git a/splitio_platform_interface/test/split_view_test.dart b/splitio_platform_interface/test/split_view_test.dart index 50701e9..9a5aee1 100644 --- a/splitio_platform_interface/test/split_view_test.dart +++ b/splitio_platform_interface/test/split_view_test.dart @@ -23,6 +23,7 @@ void main() { 'changeNumber': 156246, 'trafficType': 'default', 'defaultTreatment': 'on', + 'sets': ['set1', 'set2'], }); expect(splitView?.name, 'my_split'); @@ -32,5 +33,6 @@ void main() { expect(splitView?.changeNumber, 156246); expect(splitView?.trafficType, 'default'); expect(splitView?.defaultTreatment, 'on'); + expect(splitView?.sets, ['set1', 'set2']); }); } From 9e329521e152ca49c1fa37499e48064685587a9b Mon Sep 17 00:00:00 2001 From: Gaston Thea Date: Thu, 2 Nov 2023 18:10:46 -0300 Subject: [PATCH 4/5] Revert --- splitio_platform_interface/lib/split_result.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/splitio_platform_interface/lib/split_result.dart b/splitio_platform_interface/lib/split_result.dart index f1c0896..80b452b 100644 --- a/splitio_platform_interface/lib/split_result.dart +++ b/splitio_platform_interface/lib/split_result.dart @@ -13,8 +13,8 @@ class SplitResult { String toString() { return '{"treatment": "' + treatment + - '", config: ' + - (config != null ? '"$config"' : 'null') + - '}'; + '", config: "' + + (config ?? 'null') + + '"}'; } } From 5973f3b80da6b0d150a6ca1d4e6aaca2a56778c8 Mon Sep 17 00:00:00 2001 From: Vince Varga Date: Thu, 2 Nov 2023 22:14:17 +0100 Subject: [PATCH 5/5] Update SplitResult.toString to display null values differently (#88) --- splitio_platform_interface/lib/split_result.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/splitio_platform_interface/lib/split_result.dart b/splitio_platform_interface/lib/split_result.dart index 80b452b..f1c0896 100644 --- a/splitio_platform_interface/lib/split_result.dart +++ b/splitio_platform_interface/lib/split_result.dart @@ -13,8 +13,8 @@ class SplitResult { String toString() { return '{"treatment": "' + treatment + - '", config: "' + - (config ?? 'null') + - '"}'; + '", config: ' + + (config != null ? '"$config"' : 'null') + + '}'; } }