MCPcopy
hub / github.com/uber-go/zap / TestMapObjectEncoderAdd

Function TestMapObjectEncoderAdd

zapcore/memory_encoder_test.go:31–257  ·  zapcore/memory_encoder_test.go::TestMapObjectEncoderAdd
(t *testing.T)

Source from the content-addressed store, hash-verified

29)
30
31func TestMapObjectEncoderAdd(t *testing.T) {
32 // Expected output of a turducken.
33 wantTurducken := map[string]interface{}{
34 "ducks": []interface{}{
35 map[string]interface{}{"in": "chicken"},
36 map[string]interface{}{"in": "chicken"},
37 },
38 }
39
40 tests := []struct {
41 desc string
42 f func(ObjectEncoder)
43 expected interface{}
44 }{
45 {
46 desc: "AddObject",
47 f: func(e ObjectEncoder) {
48 assert.NoError(t, e.AddObject("k", loggable{true}), "Expected AddObject to succeed.")
49 },
50 expected: map[string]interface{}{"loggable": "yes"},
51 },
52 {
53 desc: "AddObject (nested)",
54 f: func(e ObjectEncoder) {
55 assert.NoError(t, e.AddObject("k", turducken{}), "Expected AddObject to succeed.")
56 },
57 expected: wantTurducken,
58 },
59 {
60 desc: "AddArray",
61 f: func(e ObjectEncoder) {
62 assert.NoError(t, e.AddArray("k", ArrayMarshalerFunc(func(arr ArrayEncoder) error {
63 arr.AppendBool(true)
64 arr.AppendBool(false)
65 arr.AppendBool(true)
66 return nil
67 })), "Expected AddArray to succeed.")
68 },
69 expected: []interface{}{true, false, true},
70 },
71 {
72 desc: "AddArray (nested)",
73 f: func(e ObjectEncoder) {
74 assert.NoError(t, e.AddArray("k", turduckens(2)), "Expected AddArray to succeed.")
75 },
76 expected: []interface{}{wantTurducken, wantTurducken},
77 },
78 {
79 desc: "AddArray (empty)",
80 f: func(e ObjectEncoder) {
81 assert.NoError(t, e.AddArray("k", turduckens(0)), "Expected AddArray to succeed.")
82 },
83 expected: []interface{}{},
84 },
85 {
86 desc: "AddBinary",
87 f: func(e ObjectEncoder) { e.AddBinary("k", []byte("foo")) },
88 expected: []byte("foo"),

Callers

nothing calls this directly

Calls 15

ArrayMarshalerFuncFuncType · 0.85
turduckensTypeAlias · 0.85
NewMapObjectEncoderFunction · 0.85
AddObjectMethod · 0.65
AddArrayMethod · 0.65
AppendBoolMethod · 0.65
AddBinaryMethod · 0.65
AddByteStringMethod · 0.65
AddBoolMethod · 0.65
AddComplex128Method · 0.65
AddComplex64Method · 0.65
AddDurationMethod · 0.65

Tested by

no test coverage detected