@@ -48,21 +48,71 @@ func TestGetAll(t *testing.T) {
48
48
}
49
49
50
50
func TestMerge (t * testing.T ) {
51
- bulkSettings := `{"foo": "bar", "daemon":{"port":"420"}}`
52
- _ , err := svc .Merge (context .Background (), & rpc.RawData {JsonData : bulkSettings })
53
- require .Nil (t , err )
51
+ // Verify defaults
52
+ require .Equal (t , "50051" , configuration .Settings .GetString ("daemon.port" ))
53
+ require .Equal (t , "" , configuration .Settings .GetString ("foo" ))
54
+ require .Equal (t , false , configuration .Settings .GetBool ("sketch.always_export_binaries" ))
55
+
56
+ bulkSettings := `{"foo": "bar", "daemon":{"port":"420"}, "sketch": {"always_export_binaries": "true"}}`
57
+ res , err := svc .Merge (context .Background (), & rpc.RawData {JsonData : bulkSettings })
58
+ require .NotNil (t , res )
59
+ require .NoError (t , err )
54
60
55
61
require .Equal (t , "420" , configuration .Settings .GetString ("daemon.port" ))
56
62
require .Equal (t , "bar" , configuration .Settings .GetString ("foo" ))
63
+ require .Equal (t , true , configuration .Settings .GetBool ("sketch.always_export_binaries" ))
64
+
65
+ bulkSettings = `{"foo":"", "daemon": {}, "sketch": {"always_export_binaries": "false"}}`
66
+ res , err = svc .Merge (context .Background (), & rpc.RawData {JsonData : bulkSettings })
67
+ require .NotNil (t , res )
68
+ require .NoError (t , err )
69
+
70
+ require .Equal (t , "50051" , configuration .Settings .GetString ("daemon.port" ))
71
+ require .Equal (t , "" , configuration .Settings .GetString ("foo" ))
72
+ require .Equal (t , false , configuration .Settings .GetBool ("sketch.always_export_binaries" ))
73
+
74
+ bulkSettings = `{"daemon": {"port":""}}`
75
+ res , err = svc .Merge (context .Background (), & rpc.RawData {JsonData : bulkSettings })
76
+ require .NotNil (t , res )
77
+ require .NoError (t , err )
78
+
79
+ require .Equal (t , "" , configuration .Settings .GetString ("daemon.port" ))
80
+ // Verifies other values are not changed
81
+ require .Equal (t , "" , configuration .Settings .GetString ("foo" ))
82
+ require .Equal (t , false , configuration .Settings .GetBool ("sketch.always_export_binaries" ))
57
83
58
84
reset ()
59
85
}
60
86
61
87
func TestGetValue (t * testing.T ) {
62
88
key := & rpc.GetValueRequest {Key : "daemon" }
63
89
resp , err := svc .GetValue (context .Background (), key )
64
- require .Nil (t , err )
90
+ require .NoError (t , err )
65
91
require .Equal (t , `{"port":"50051"}` , resp .GetJsonData ())
92
+
93
+ key = & rpc.GetValueRequest {Key : "daemon.port" }
94
+ resp , err = svc .GetValue (context .Background (), key )
95
+ require .NoError (t , err )
96
+ require .Equal (t , `"50051"` , resp .GetJsonData ())
97
+ }
98
+
99
+ func TestGetMergedValue (t * testing.T ) {
100
+ // Verifies value is not set
101
+ key := & rpc.GetValueRequest {Key : "foo" }
102
+ res , err := svc .GetValue (context .Background (), key )
103
+ require .Nil (t , res )
104
+ require .Error (t , err , "Error getting settings value" )
105
+
106
+ // Merge value
107
+ bulkSettings := `{"foo": "bar"}`
108
+ _ , err = svc .Merge (context .Background (), & rpc.RawData {JsonData : bulkSettings })
109
+ require .NoError (t , err )
110
+
111
+ // Verifies value is correctly returned
112
+ key = & rpc.GetValueRequest {Key : "foo" }
113
+ res , err = svc .GetValue (context .Background (), key )
114
+ require .NoError (t , err )
115
+ require .Equal (t , `"bar"` , res .GetJsonData ())
66
116
}
67
117
68
118
func TestGetValueNotFound (t * testing.T ) {
0 commit comments