GitRepositoryManager/echo/echo_test.go
Mikołaj Pęczkowski 5fd9bc851b Add "echo" as logger
This allow to test ouput, and specify ouput other then os.Stdout
2021-11-07 19:59:11 +01:00

152 lines
3.0 KiB
Go

package echo
import (
"fmt"
"os"
"testing"
)
type ExpectedMessageTester struct {
expectedMessage string
}
func (emt ExpectedMessageTester) Write(p []byte) (n int, err error) {
msg := string(p)
if msg != emt.expectedMessage {
return 0, fmt.Errorf("expected to get \"%v\", instead of this got \"%v\"", msg, emt.expectedMessage)
}
return 0, nil
}
func TestOverwriteColor(t *testing.T) {
Color(false)
if useColor {
t.Error("Expected that \"useColor\" will be false")
}
Color(true)
if !useColor {
t.Error("Expected that \"useColor\" will be true")
}
}
func TestOverwriteWriter(t *testing.T) {
Output(os.Stderr)
if output != os.Stderr {
t.Error("Expected to receive addresses on os.Stderr")
}
Output(os.Stdout)
if output != os.Stdout {
t.Error("Expected to receive addresses on os.Stdout")
}
}
func TestErrorfMsgWithoutColor(t *testing.T) {
useColor = false
output = ExpectedMessageTester{
expectedMessage: "Error: test message\n",
}
err := ErrorfMsg("test message")
if err != nil {
t.Error(err)
}
}
func TestErrorfMsgWithColor(t *testing.T) {
useColor = true
output = ExpectedMessageTester{
expectedMessage: "\033[31mError:\033[0m test message\n",
}
err := ErrorfMsg("test message")
if err != nil {
t.Error(err)
}
}
func TestInfoMsgFWithoutColor(t *testing.T) {
useColor = false
output = ExpectedMessageTester{
expectedMessage: "Info: test message\n",
}
err := InfoFMsg("test message")
if err != nil {
t.Error(err)
}
}
func TestInfoMsgFWithColor(t *testing.T) {
useColor = true
output = ExpectedMessageTester{
expectedMessage: "\033[34mInfo:\033[0m test message\n",
}
err := InfoFMsg("test message")
if err != nil {
t.Error(err)
}
}
func TestGreenMessageWithoutColor(t *testing.T) {
useColor = false
output = ExpectedMessageTester{
expectedMessage: "test message\n",
}
err := GreenMessageF("test message")
if err != nil {
t.Error(err)
}
}
func TestGreenMessageWithColor(t *testing.T) {
useColor = true
output = ExpectedMessageTester{
expectedMessage: "\033[32mtest message\033[0m\n",
}
err := GreenMessageF("test message")
if err != nil {
t.Error(err)
}
}
func TestYellowMessageWithout(t *testing.T) {
useColor = false
output = ExpectedMessageTester{
expectedMessage: "test message\n",
}
err := YellowMessageF("test message")
if err != nil {
t.Error(err)
}
}
func TestYellowMessageWithColor(t *testing.T) {
useColor = true
output = ExpectedMessageTester{
expectedMessage: "\033[33mtest message\033[0m\n",
}
err := YellowMessageF("test message")
if err != nil {
t.Error(err)
}
}
func TestRedMessageWithout(t *testing.T) {
useColor = false
output = ExpectedMessageTester{
expectedMessage: "test message\n",
}
err := RedMessageF("test message")
if err != nil {
t.Error(err)
}
}
func TestRedMessageWithColor(t *testing.T) {
useColor = true
output = ExpectedMessageTester{
expectedMessage: "\033[31mtest message\033[0m\n",
}
err := RedMessageF("test message")
if err != nil {
t.Error(err)
}
}