1
1
package multiprovider
2
2
3
- import "testing"
3
+ import (
4
+ "testing"
4
5
5
- func TestNewMultiProvider (t * testing.T ){}
6
+ // "github.com/open-feature/go-sdk/openfeature"
7
+ "github.com/open-feature/go-sdk/openfeature/hooks"
8
+ "github.com/open-feature/go-sdk/openfeature/memprovider"
9
+ oft "github.com/open-feature/go-sdk/openfeature/testing"
10
+ )
11
+
12
+ func TestNewMultiProvider_ProviderMetadataUniqueNames (t * testing.T ) {
13
+ testProvider1 := memprovider .NewInMemoryProvider (map [string ]memprovider.InMemoryFlag {
14
+ "boolFlag" : {
15
+ Key : "boolFlag" ,
16
+ State : memprovider .Enabled ,
17
+ DefaultVariant : "true" ,
18
+ Variants : map [string ]interface {}{
19
+ "true" : true ,
20
+ "false" : false ,
21
+ },
22
+ ContextEvaluator : nil ,
23
+ },
24
+ })
25
+ testProvider2 := oft .NewTestProvider ()
26
+
27
+ defaultLogger , err := hooks .NewLoggingHook (false )
28
+ if err != nil {
29
+ t .Errorf ("Issue setting up logger,'%s'" , err )
30
+ }
31
+
32
+ multiProvider , err := NewMultiProvider ([]UniqueNameProvider {
33
+ {
34
+ Provider : testProvider1 ,
35
+ }, {
36
+ Provider : testProvider2 ,
37
+ },
38
+ }, "test" , defaultLogger )
39
+
40
+ if err != nil {
41
+ t .Errorf ("Expected the multiprovider to successfully make an instance, '%s'" , err )
42
+ }
43
+
44
+ providerEntries := multiProvider .Providers ()
45
+
46
+ if providerEntries [0 ].UniqueName != "InMemoryProvider" {
47
+ t .Errorf ("Expected unique provider name to be: 'InMemoryProvider', got: '%s'" , providerEntries [0 ].UniqueName )
48
+ }
49
+ if providerEntries [1 ].UniqueName != "NoopProvider" {
50
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , providerEntries [1 ].UniqueName )
51
+ }
52
+
53
+ if len (providerEntries ) != 2 {
54
+ t .Errorf ("Expected there to be 2 provider entries, got: '%d'" , len (providerEntries ))
55
+ }
56
+ }
57
+
58
+ func TestNewMultiProvider_DuplicateProviderGenerateUniqueNames (t * testing.T ) {
59
+ testProvider1 := memprovider .NewInMemoryProvider (map [string ]memprovider.InMemoryFlag {
60
+ "boolFlag" : {
61
+ Key : "boolFlag" ,
62
+ State : memprovider .Enabled ,
63
+ DefaultVariant : "true" ,
64
+ Variants : map [string ]interface {}{
65
+ "true" : true ,
66
+ "false" : false ,
67
+ },
68
+ ContextEvaluator : nil ,
69
+ },
70
+ })
71
+ testProvider2 := oft .NewTestProvider ()
72
+ testProvider3 := oft .NewTestProvider ()
73
+ testProvider4 := oft .NewTestProvider ()
74
+
75
+ defaultLogger , err := hooks .NewLoggingHook (false )
76
+ if err != nil {
77
+ t .Errorf ("Issue setting up logger,'%s'" , err )
78
+ }
79
+
80
+ multiProvider , err := NewMultiProvider ([]UniqueNameProvider {
81
+ {
82
+ Provider : testProvider1 ,
83
+ }, {
84
+ Provider : testProvider2 ,
85
+ }, {
86
+ Provider : testProvider3 ,
87
+ },{
88
+ Provider : testProvider4 ,
89
+ },
90
+ }, "test" , defaultLogger )
91
+
92
+ if err != nil {
93
+ t .Errorf ("Expected the multiprovider to successfully make an instance, '%s'" , err )
94
+ }
95
+
96
+ providerEntries := multiProvider .Providers ()
97
+
98
+ if providerEntries [0 ].UniqueName != "InMemoryProvider" {
99
+ t .Errorf ("Expected unique provider name to be: 'InMemoryProvider', got: '%s'" , providerEntries [0 ].UniqueName )
100
+ }
101
+ if providerEntries [1 ].UniqueName != "NoopProvider-1" {
102
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , providerEntries [1 ].UniqueName )
103
+ }
104
+ if providerEntries [2 ].UniqueName != "NoopProvider-2" {
105
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , providerEntries [2 ].UniqueName )
106
+ }
107
+ if providerEntries [3 ].UniqueName != "NoopProvider-3" {
108
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , providerEntries [3 ].UniqueName )
109
+ }
110
+
111
+ if len (providerEntries ) != 4 {
112
+ t .Errorf ("Expected there to be 4 provider entries, got: '%d'" , len (providerEntries ))
113
+ }
114
+ }
115
+ func TestNewMultiProvider_ (t * testing.T ) {
116
+ testProvider1 := memprovider .NewInMemoryProvider (map [string ]memprovider.InMemoryFlag {
117
+ "boolFlag" : {
118
+ Key : "boolFlag" ,
119
+ State : memprovider .Enabled ,
120
+ DefaultVariant : "true" ,
121
+ Variants : map [string ]interface {}{
122
+ "true" : true ,
123
+ "false" : false ,
124
+ },
125
+ ContextEvaluator : nil ,
126
+ },
127
+ })
128
+ testProvider2 := oft .NewTestProvider ()
129
+ testProvider3 := oft .NewTestProvider ()
130
+ testProvider4 := oft .NewTestProvider ()
131
+
132
+ defaultLogger , err := hooks .NewLoggingHook (false )
133
+ if err != nil {
134
+ t .Errorf ("Issue setting up logger,'%s'" , err )
135
+ }
136
+
137
+ multiProvider , err := NewMultiProvider ([]UniqueNameProvider {
138
+ {
139
+ Provider : testProvider1 ,
140
+ }, {
141
+ Provider : testProvider2 ,
142
+ }, {
143
+ Provider : testProvider3 ,
144
+ },{
145
+ Provider : testProvider4 ,
146
+ },
147
+ }, "test" , defaultLogger )
148
+
149
+ if err != nil {
150
+ t .Errorf ("Expected the multiprovider to successfully make an instance, '%s'" , err )
151
+ }
152
+
153
+ if multiProvider .providersEntries [0 ].UniqueName != "InMemoryProvider" {
154
+ t .Errorf ("Expected unique provider name to be: 'InMemoryProvider', got: '%s'" , multiProvider .providersEntries [0 ].UniqueName )
155
+ }
156
+ if multiProvider .providersEntries [1 ].UniqueName != "NoopProvider-1" {
157
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , multiProvider .providersEntries [1 ].UniqueName )
158
+ }
159
+ if multiProvider .providersEntries [2 ].UniqueName != "NoopProvider-2" {
160
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , multiProvider .providersEntries [2 ].UniqueName )
161
+ }
162
+ if multiProvider .providersEntries [3 ].UniqueName != "NoopProvider-3" {
163
+ t .Errorf ("Expected unique provider name to be: 'NoopProvider', got: '%s'" , multiProvider .providersEntries [3 ].UniqueName )
164
+ }
165
+ }
0 commit comments