(t *testing.T)
| 45 | } |
| 46 | |
| 47 | func 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 | |
| 86 | func TestRegisterSinkErrors(t *testing.T) { |
| 87 | nopFactory := func(_ *url.URL) (Sink, error) { |
nothing calls this directly
no test coverage detected