261 lines
7.3 KiB
Go
261 lines
7.3 KiB
Go
package wlog
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPrefixConcurrentLog(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui = AddConcurrent(ui)
|
|
t := time.Now()
|
|
ui.Log("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.log == " " {
|
|
expectedString = t.Format(timeFormat) + ": " + c.log + expectedString
|
|
} else if c.log == "" {
|
|
expectedString = t.Format(timeFormat) + ": " + expectedString
|
|
} else {
|
|
expectedString = t.Format(timeFormat) + ": " + c.log + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixOutput(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Output("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.out == " " {
|
|
expectedString = c.out + expectedString
|
|
} else if c.out != "" {
|
|
expectedString = c.out + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixSuccess(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Success("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.suc == " " {
|
|
expectedString = c.suc + expectedString
|
|
} else if c.suc != "" {
|
|
expectedString = c.suc + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixInfo(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Info("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.inf == " " {
|
|
expectedString = c.inf + expectedString
|
|
} else if c.inf != "" {
|
|
expectedString = c.inf + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixRunning(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Running("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.run == " " {
|
|
expectedString = c.run + expectedString
|
|
} else if c.run != "" {
|
|
expectedString = c.run + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixError(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Error("Awesome string")
|
|
out, err := errWriter.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = writer.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.err == " " {
|
|
expectedString = c.err + expectedString
|
|
} else if c.err != "" {
|
|
expectedString = c.err + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixWarn(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Warn("Awesome string")
|
|
out, err := errWriter.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = writer.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.war == " " {
|
|
expectedString = c.war + expectedString
|
|
} else if c.war != "" {
|
|
expectedString = c.war + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixWarnNoErrorWriter(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("\r\n")
|
|
ui = New(reader, writer, nil)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
ui.Warn("Awesome string")
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.war == " " {
|
|
expectedString = c.war + expectedString
|
|
} else if c.war != "" {
|
|
expectedString = c.war + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
}
|
|
}
|
|
|
|
func TestPrefixAsk(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("345\r\n")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
res, err := ui.Ask("Awesome string", "")
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.ask == " " {
|
|
expectedString = c.ask + expectedString
|
|
} else if c.ask != "" {
|
|
expectedString = c.ask + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
assert.Equal("345", res)
|
|
}
|
|
}
|
|
|
|
func TestPrefixAskError(t *testing.T) {
|
|
for _, c := range addPrefixCases {
|
|
assert := assert.New(t)
|
|
var ui UI
|
|
writer, errWriter, reader := initTest("")
|
|
ui = New(reader, writer, errWriter)
|
|
ui = AddPrefix(c.ask, c.err, c.inf, c.log, c.out, c.run, c.suc, c.war, ui)
|
|
res, err := ui.Ask("Awesome string", "")
|
|
if err != nil {
|
|
assert.Equal("EOF", err.Error())
|
|
}
|
|
out, err := writer.ReadString((byte)('\n'))
|
|
if err != nil {
|
|
assert.Fail(err.Error())
|
|
}
|
|
_, err = errWriter.ReadString((byte)('\n'))
|
|
assert.Equal("EOF", err.Error())
|
|
expectedString := "Awesome string\n"
|
|
if c.ask == " " {
|
|
expectedString = c.ask + expectedString
|
|
} else if c.ask != "" {
|
|
expectedString = c.ask + " " + expectedString
|
|
}
|
|
assert.Equal(expectedString, out)
|
|
assert.Equal("", res)
|
|
}
|
|
}
|