mirror of https://github.com/stretchr/testify.git
204 lines
7.5 KiB
Go
204 lines
7.5 KiB
Go
package assert
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestIsIncreasing(t *testing.T) {
|
|
mockT := new(testing.T)
|
|
|
|
if !IsIncreasing(mockT, []int{1, 2}) {
|
|
t.Error("IsIncreasing should return true")
|
|
}
|
|
|
|
if !IsIncreasing(mockT, []int{1, 2, 3, 4, 5}) {
|
|
t.Error("IsIncreasing should return true")
|
|
}
|
|
|
|
if IsIncreasing(mockT, []int{1, 1}) {
|
|
t.Error("IsIncreasing should return false")
|
|
}
|
|
|
|
if IsIncreasing(mockT, []int{2, 1}) {
|
|
t.Error("IsIncreasing should return false")
|
|
}
|
|
|
|
// Check error report
|
|
for _, currCase := range []struct {
|
|
collection interface{}
|
|
msg string
|
|
}{
|
|
{collection: []string{"b", "a"}, msg: `"b" is not less than "a"`},
|
|
{collection: []int{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []int{2, 1, 3, 4, 5, 6, 7}, msg: `"2" is not less than "1"`},
|
|
{collection: []int{-1, 0, 2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []int8{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []int16{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []int32{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []int64{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []uint8{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []uint16{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []uint32{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []uint64{2, 1}, msg: `"2" is not less than "1"`},
|
|
{collection: []float32{2.34, 1.23}, msg: `"2.34" is not less than "1.23"`},
|
|
{collection: []float64{2.34, 1.23}, msg: `"2.34" is not less than "1.23"`},
|
|
} {
|
|
out := &outputT{buf: bytes.NewBuffer(nil)}
|
|
False(t, IsIncreasing(out, currCase.collection))
|
|
Contains(t, out.buf.String(), currCase.msg)
|
|
}
|
|
}
|
|
|
|
func TestIsNonIncreasing(t *testing.T) {
|
|
mockT := new(testing.T)
|
|
|
|
if !IsNonIncreasing(mockT, []int{2, 1}) {
|
|
t.Error("IsNonIncreasing should return true")
|
|
}
|
|
|
|
if !IsNonIncreasing(mockT, []int{5, 4, 4, 3, 2, 1}) {
|
|
t.Error("IsNonIncreasing should return true")
|
|
}
|
|
|
|
if !IsNonIncreasing(mockT, []int{1, 1}) {
|
|
t.Error("IsNonIncreasing should return true")
|
|
}
|
|
|
|
if IsNonIncreasing(mockT, []int{1, 2}) {
|
|
t.Error("IsNonIncreasing should return false")
|
|
}
|
|
|
|
// Check error report
|
|
for _, currCase := range []struct {
|
|
collection interface{}
|
|
msg string
|
|
}{
|
|
{collection: []string{"a", "b"}, msg: `"a" is not greater than or equal to "b"`},
|
|
{collection: []int{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int{1, 2, 7, 6, 5, 4, 3}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int{5, 4, 3, 1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int8{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int16{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int32{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []int64{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []uint8{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []uint16{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []uint32{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []uint64{1, 2}, msg: `"1" is not greater than or equal to "2"`},
|
|
{collection: []float32{1.23, 2.34}, msg: `"1.23" is not greater than or equal to "2.34"`},
|
|
{collection: []float64{1.23, 2.34}, msg: `"1.23" is not greater than or equal to "2.34"`},
|
|
} {
|
|
out := &outputT{buf: bytes.NewBuffer(nil)}
|
|
False(t, IsNonIncreasing(out, currCase.collection))
|
|
Contains(t, out.buf.String(), currCase.msg)
|
|
}
|
|
}
|
|
|
|
func TestIsDecreasing(t *testing.T) {
|
|
mockT := new(testing.T)
|
|
|
|
if !IsDecreasing(mockT, []int{2, 1}) {
|
|
t.Error("IsDecreasing should return true")
|
|
}
|
|
|
|
if !IsDecreasing(mockT, []int{5, 4, 3, 2, 1}) {
|
|
t.Error("IsDecreasing should return true")
|
|
}
|
|
|
|
if IsDecreasing(mockT, []int{1, 1}) {
|
|
t.Error("IsDecreasing should return false")
|
|
}
|
|
|
|
if IsDecreasing(mockT, []int{1, 2}) {
|
|
t.Error("IsDecreasing should return false")
|
|
}
|
|
|
|
// Check error report
|
|
for _, currCase := range []struct {
|
|
collection interface{}
|
|
msg string
|
|
}{
|
|
{collection: []string{"a", "b"}, msg: `"a" is not greater than "b"`},
|
|
{collection: []int{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int{1, 2, 7, 6, 5, 4, 3}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int{5, 4, 3, 1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int8{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int16{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int32{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []int64{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []uint8{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []uint16{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []uint32{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []uint64{1, 2}, msg: `"1" is not greater than "2"`},
|
|
{collection: []float32{1.23, 2.34}, msg: `"1.23" is not greater than "2.34"`},
|
|
{collection: []float64{1.23, 2.34}, msg: `"1.23" is not greater than "2.34"`},
|
|
} {
|
|
out := &outputT{buf: bytes.NewBuffer(nil)}
|
|
False(t, IsDecreasing(out, currCase.collection))
|
|
Contains(t, out.buf.String(), currCase.msg)
|
|
}
|
|
}
|
|
|
|
func TestIsNonDecreasing(t *testing.T) {
|
|
mockT := new(testing.T)
|
|
|
|
if !IsNonDecreasing(mockT, []int{1, 2}) {
|
|
t.Error("IsNonDecreasing should return true")
|
|
}
|
|
|
|
if !IsNonDecreasing(mockT, []int{1, 1, 2, 3, 4, 5}) {
|
|
t.Error("IsNonDecreasing should return true")
|
|
}
|
|
|
|
if !IsNonDecreasing(mockT, []int{1, 1}) {
|
|
t.Error("IsNonDecreasing should return false")
|
|
}
|
|
|
|
if IsNonDecreasing(mockT, []int{2, 1}) {
|
|
t.Error("IsNonDecreasing should return false")
|
|
}
|
|
|
|
// Check error report
|
|
for _, currCase := range []struct {
|
|
collection interface{}
|
|
msg string
|
|
}{
|
|
{collection: []string{"b", "a"}, msg: `"b" is not less than or equal to "a"`},
|
|
{collection: []int{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int{2, 1, 3, 4, 5, 6, 7}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int{-1, 0, 2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int8{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int16{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int32{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []int64{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []uint8{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []uint16{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []uint32{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []uint64{2, 1}, msg: `"2" is not less than or equal to "1"`},
|
|
{collection: []float32{2.34, 1.23}, msg: `"2.34" is not less than or equal to "1.23"`},
|
|
{collection: []float64{2.34, 1.23}, msg: `"2.34" is not less than or equal to "1.23"`},
|
|
} {
|
|
out := &outputT{buf: bytes.NewBuffer(nil)}
|
|
False(t, IsNonDecreasing(out, currCase.collection))
|
|
Contains(t, out.buf.String(), currCase.msg)
|
|
}
|
|
}
|
|
|
|
func TestOrderingMsgAndArgsForwarding(t *testing.T) {
|
|
msgAndArgs := []interface{}{"format %s %x", "this", 0xc001}
|
|
expectedOutput := "format this c001\n"
|
|
collection := []int{1, 2, 1}
|
|
funcs := []func(t TestingT){
|
|
func(t TestingT) { IsIncreasing(t, collection, msgAndArgs...) },
|
|
func(t TestingT) { IsNonIncreasing(t, collection, msgAndArgs...) },
|
|
func(t TestingT) { IsDecreasing(t, collection, msgAndArgs...) },
|
|
func(t TestingT) { IsNonDecreasing(t, collection, msgAndArgs...) },
|
|
}
|
|
for _, f := range funcs {
|
|
out := &outputT{buf: bytes.NewBuffer(nil)}
|
|
f(out)
|
|
Contains(t, out.buf.String(), expectedOutput)
|
|
}
|
|
}
|