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

Function TestRegisterSink

sink_test.go:47–84  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

45}
46
47func TestRegisterSink(t *testing.T) {
48 stubSinkRegistry(t)
49
50 const (
51 memScheme = "mem"
52 nopScheme = "no-op.1234"
53 )
54 var memCalls, nopCalls int
55
56 buf := bytes.NewBuffer(nil)
57 memFactory := func(u *url.URL) (Sink, error) {
58 assert.Equal(t, u.Scheme, memScheme, "Scheme didn't match registration.")
59 memCalls++
60 return nopCloserSink{zapcore.AddSync(buf)}, nil
61 }
62 nopFactory := func(u *url.URL) (Sink, error) {
63 assert.Equal(t, u.Scheme, nopScheme, "Scheme didn't match registration.")
64 nopCalls++
65 return nopCloserSink{zapcore.AddSync(io.Discard)}, nil
66 }
67
68 require.NoError(t, RegisterSink(strings.ToUpper(memScheme), memFactory), "Failed to register scheme %q.", memScheme)
69 require.NoError(t, RegisterSink(nopScheme, nopFactory), "Failed to register scheme %q.", nopScheme)
70
71 sink, closeSink, err := Open(
72 memScheme+"://somewhere",
73 nopScheme+"://somewhere-else",
74 )
75 require.NoError(t, err, "Unexpected error opening URLs with registered schemes.")
76 defer closeSink()
77
78 assert.Equal(t, 1, memCalls, "Unexpected number of calls to memory factory.")
79 assert.Equal(t, 1, nopCalls, "Unexpected number of calls to no-op factory.")
80
81 _, err = sink.Write([]byte("foo"))
82 assert.NoError(t, err, "Failed to write to combined WriteSyncer.")
83 assert.Equal(t, "foo", buf.String(), "Unexpected buffer contents.")
84}
85
86func TestRegisterSinkErrors(t *testing.T) {
87 nopFactory := func(_ *url.URL) (Sink, error) {

Callers

nothing calls this directly

Calls 6

StringMethod · 0.95
AddSyncFunction · 0.92
stubSinkRegistryFunction · 0.85
RegisterSinkFunction · 0.85
OpenFunction · 0.85
WriteMethod · 0.65

Tested by

no test coverage detected