...
1 package ldservices
2
3 import (
4 "encoding/json"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 )
9
10 func TestFlagOrSegment(t *testing.T) {
11 f := FlagOrSegment("my-key", 2)
12 bytes, err := json.Marshal(f)
13 assert.NoError(t, err)
14 assert.JSONEq(t, `{"key":"my-key","version":2}`, string(bytes))
15 }
16
17 func TestEmptyServerSDKData(t *testing.T) {
18 expectedJSON := `{"flags":{},"segments":{}}`
19 data := NewServerSDKData()
20 bytes, err := json.Marshal(data)
21 assert.NoError(t, err)
22 assert.JSONEq(t, expectedJSON, string(bytes))
23 }
24
25 func TestSDKDataWithFlagsAndSegments(t *testing.T) {
26 flag1 := FlagOrSegment("flagkey1", 1)
27 flag2 := FlagOrSegment("flagkey2", 2)
28 segment1 := FlagOrSegment("segkey1", 3)
29 segment2 := FlagOrSegment("segkey2", 4)
30 data := NewServerSDKData().Flags(flag1, flag2).Segments(segment1, segment2)
31
32 expectedJSON := `{
33 "flags": {
34 "flagkey1": {
35 "key": "flagkey1",
36 "version": 1
37 },
38 "flagkey2": {
39 "key": "flagkey2",
40 "version": 2
41 }
42 },
43 "segments": {
44 "segkey1": {
45 "key": "segkey1",
46 "version": 3
47 },
48 "segkey2": {
49 "key": "segkey2",
50 "version": 4
51 }
52 }
53 }`
54 bytes, err := json.Marshal(data)
55 assert.NoError(t, err)
56 assert.JSONEq(t, expectedJSON, string(bytes))
57 }
58
View as plain text