MCPcopy Create free account
hub / github.com/CrunchyData/postgres-operator / TestMerge7386

Function TestMerge7386

internal/controller/runtime/patch_test.go:142–211  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

140}
141
142func TestMerge7386(t *testing.T) {
143 t.Parallel()
144
145 if actual := NewMergePatch().Type(); actual != types.MergePatchType {
146 t.Fatalf("expected %q, got %q", types.MergePatchType, actual)
147 }
148
149 // An empty patch is valid.
150 {
151 patch := NewMergePatch()
152 if !patch.IsEmpty() {
153 t.Fatal("expected empty")
154 }
155 b, err := patch.Bytes()
156 if err != nil {
157 t.Fatalf("expected no error, got %v", err)
158 }
159 assertJSON(t, `{}`, b)
160 }
161
162 // Calling Add without a path does nothing.
163 {
164 b, err := NewMergePatch().Add()("anything").Bytes()
165 if err != nil {
166 t.Fatalf("expected no error, got %v", err)
167 }
168 assertJSON(t, `{}`, b)
169 }
170
171 // Calling Add without its value is an error.
172 {
173 patch := NewMergePatch()
174 patch.Add("a")
175 _, err := patch.Bytes()
176 if err == nil {
177 t.Fatal("expected an error, got none")
178 }
179 }
180 {
181 b, err := NewMergePatch().Add("a", "x/y", "0")(9).Bytes()
182 if err != nil {
183 t.Fatalf("expected no error, got %v", err)
184 }
185 assertJSON(t, `{"a":{"x/y":{"0":9}}}`, b)
186 }
187
188 // Remove takes no value.
189 {
190 b, err := NewMergePatch().Remove("b", "m/n/o").Bytes()
191 if err != nil {
192 t.Fatalf("expected no error, got %v", err)
193 }
194 assertJSON(t, `{"b":{"m/n/o":null}}`, b)
195 }
196
197 // Calls are chainable.
198 {
199 b, err := NewMergePatch().

Callers

nothing calls this directly

Calls 7

NewMergePatchFunction · 0.85
assertJSONFunction · 0.85
TypeMethod · 0.45
IsEmptyMethod · 0.45
BytesMethod · 0.45
AddMethod · 0.45
RemoveMethod · 0.45

Tested by

no test coverage detected