dnscontrol/pkg/printer/printer_test.go

48 lines
1.1 KiB
Go
Raw Normal View History

package printer
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
)
// TestDefaultPrinter checks that the DefaultPrinter properly controls output from the package-level
// Warnf/Printf/Debugf functions.
func TestDefaultPrinter(t *testing.T) {
old := DefaultPrinter
defer func() {
DefaultPrinter = old
}()
output := &bytes.Buffer{}
DefaultPrinter = &ConsolePrinter{
Writer: output,
Verbose: true,
}
Warnf("warn\n")
Printf("output\n")
Debugf("debugging\n")
assert.Equal(t, "WARNING: warn\noutput\ndebugging\n", output.String())
}
func TestVerbose(t *testing.T) {
output := &bytes.Buffer{}
p := ConsolePrinter{
Writer: output,
Verbose: false,
}
// Test that verbose output is suppressed.
p.Warnf("a dire warning!\n")
p.Printf("output\n")
p.Debugf("debugging\n")
assert.Equal(t, "WARNING: a dire warning!\noutput\n", output.String())
// Test that Verbose output can be dynamically enabled.
p.Verbose = true
p.Debugf("more debugging\n")
assert.Equal(t, "WARNING: a dire warning!\noutput\nmore debugging\n", output.String())
}