aboutsummaryrefslogtreecommitdiffhomepage
path: root/container/output_test.go
blob: 85ef756f953fca1ec893228794bc5948b72b98f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package container

import (
	"testing"
)

func TestGetSetOutput(t *testing.T) {
	{
		out := GetOutput()
		t.Cleanup(func() { SetOutput(out) })
	}

	t.Run("default", func(t *testing.T) {
		SetOutput(new(stubOutput))
		if v, ok := GetOutput().(*DefaultMsg); ok {
			t.Fatalf("SetOutput: got unexpected output %#v", v)
		}
		SetOutput(nil)
		if _, ok := GetOutput().(*DefaultMsg); !ok {
			t.Fatalf("SetOutput: got unexpected output %#v", GetOutput())
		}
	})

	t.Run("stub", func(t *testing.T) {
		SetOutput(new(stubOutput))
		if _, ok := GetOutput().(*stubOutput); !ok {
			t.Fatalf("SetOutput: got unexpected output %#v", GetOutput())
		}
	})
}

type stubOutput struct {
	wrapF func(error, ...any) error
}

func (*stubOutput) IsVerbose() bool         { panic("unreachable") }
func (*stubOutput) Verbose(...any)          { panic("unreachable") }
func (*stubOutput) Verbosef(string, ...any) { panic("unreachable") }
func (*stubOutput) Suspend()                { panic("unreachable") }
func (*stubOutput) Resume() bool            { panic("unreachable") }
func (*stubOutput) BeforeExit()             { panic("unreachable") }