diff options
Diffstat (limited to 'model/node_test.go')
-rw-r--r-- | model/node_test.go | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/model/node_test.go b/model/node_test.go deleted file mode 100644 index 1f46361..0000000 --- a/model/node_test.go +++ /dev/null @@ -1,108 +0,0 @@ -package model - -import ( - stdJSON "encoding/json" - "reflect" - "testing" -) - -func TestNode_MarshalJSON(t *testing.T) { - type fields struct { - node Node - } - tests := []struct { - name string - fields fields - want []byte - wantErr bool - }{ - { - name: "empty", - fields: fields{ - node: NewNode(nil), - }, - want: []byte(`null`), - }, - { - name: "string", - fields: fields{ - node: NewNode("this is a string"), - }, - want: []byte(`"this is a string"`), - }, - { - name: "int", - fields: fields{ - node: NewNode(123), - }, - want: []byte(`123`), - }, - { - name: "float", - fields: fields{ - node: NewNode(123.321), - }, - want: []byte(`123.321`), - }, - { - name: "booleant", - fields: fields{ - node: NewNode(true), - }, - want: []byte(`true`), - }, - { - name: "booleanf", - fields: fields{ - node: NewNode(false), - }, - want: []byte(`false`), - }, - { - name: "complex", - fields: fields{ - node: NewNode( - NodeObjectValue{ - "string key": NewNode("string value"), - "number key": NewNode(1337), - "float key": NewNode(123.3), - "object key": NewNode(NodeObjectValue{ - "ab": NewNode("cd"), - }), - "array key": NewNode(NodeArrayValue{ - NewNode(1), NewNode(2), NewNode("three"), - }), - "boolean key": NewNode(true), - "null key": NewNode(nil), - }, - ), - }, - want: []byte( - `{"string key": "string value", "number key": 1337, "float key": 123.3, "object key": {"ab": "cd"}, "array key": [1, 2, "three"], "boolean key": true, "null key": null}`, - ), - wantErr: false, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - var ( - gotObj any - wantObj any - ) - - got, err := tt.fields.node.MarshalJSON() - if (err != nil) != tt.wantErr { - t.Errorf("Node.MarshalJSON() error = %v, wantErr %v", err, tt.wantErr) - return - } - err = stdJSON.Unmarshal(got, &gotObj) // TODO use own unmarshaller - if err != nil { - t.Errorf("Generated invalid json = %s, error = %v", got, err) - } - _ = stdJSON.Unmarshal(tt.want, &wantObj) // I belive, test is correct - if !reflect.DeepEqual(gotObj, wantObj) { - t.Errorf("Node.MarshalJSON() = %s, want %s", got, tt.want) - } - }) - } -} |