Files
acme-dns/vendor/github.com/gavv/httpexpect/number_test.go
2018-01-22 11:19:33 +02:00

340 lines
6.2 KiB
Go

package httpexpect
import (
"math"
"testing"
"github.com/stretchr/testify/assert"
)
func TestNumberFailed(t *testing.T) {
chain := makeChain(newMockReporter(t))
chain.fail("fail")
value := &Number{chain, 0}
value.chain.assertFailed(t)
value.Path("$").chain.assertFailed(t)
value.Schema("")
value.Equal(0)
value.NotEqual(0)
value.Gt(0)
value.Ge(0)
value.Lt(0)
value.Le(0)
value.InRange(0, 0)
}
func TestNumberGetters(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 123.0)
assert.Equal(t, 123.0, value.Raw())
value.chain.assertOK(t)
value.chain.reset()
assert.Equal(t, 123.0, value.Path("$").Raw())
value.chain.assertOK(t)
value.chain.reset()
value.Schema(`{"type": "number"}`)
value.chain.assertOK(t)
value.chain.reset()
value.Schema(`{"type": "object"}`)
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberEqual(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
assert.Equal(t, 1234, int(value.Raw()))
value.Equal(1234)
value.chain.assertOK(t)
value.chain.reset()
value.Equal(4321)
value.chain.assertFailed(t)
value.chain.reset()
value.NotEqual(4321)
value.chain.assertOK(t)
value.chain.reset()
value.NotEqual(1234)
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberEqualDelta(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234.5)
value.EqualDelta(1234.3, 0.3)
value.chain.assertOK(t)
value.chain.reset()
value.EqualDelta(1234.7, 0.3)
value.chain.assertOK(t)
value.chain.reset()
value.EqualDelta(1234.3, 0.1)
value.chain.assertFailed(t)
value.chain.reset()
value.EqualDelta(1234.7, 0.1)
value.chain.assertFailed(t)
value.chain.reset()
value.NotEqualDelta(1234.3, 0.3)
value.chain.assertFailed(t)
value.chain.reset()
value.NotEqualDelta(1234.7, 0.3)
value.chain.assertFailed(t)
value.chain.reset()
value.NotEqualDelta(1234.3, 0.1)
value.chain.assertOK(t)
value.chain.reset()
value.NotEqualDelta(1234.7, 0.1)
value.chain.assertOK(t)
value.chain.reset()
}
func TestNumberEqualNaN(t *testing.T) {
reporter := newMockReporter(t)
v1 := NewNumber(reporter, math.NaN())
v1.Equal(1234.5)
v1.chain.assertFailed(t)
v2 := NewNumber(reporter, 1234.5)
v2.Equal(math.NaN())
v2.chain.assertFailed(t)
v3 := NewNumber(reporter, math.NaN())
v3.EqualDelta(1234.0, 0.1)
v3.chain.assertFailed(t)
v4 := NewNumber(reporter, 1234.5)
v4.EqualDelta(math.NaN(), 0.1)
v4.chain.assertFailed(t)
v5 := NewNumber(reporter, 1234.5)
v5.EqualDelta(1234.5, math.NaN())
v5.chain.assertFailed(t)
v6 := NewNumber(reporter, math.NaN())
v6.NotEqualDelta(1234.0, 0.1)
v6.chain.assertFailed(t)
v7 := NewNumber(reporter, 1234.5)
v7.NotEqualDelta(math.NaN(), 0.1)
v7.chain.assertFailed(t)
v8 := NewNumber(reporter, 1234.5)
v8.NotEqualDelta(1234.5, math.NaN())
v8.chain.assertFailed(t)
}
func TestNumberGreater(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.Gt(1234 - 1)
value.chain.assertOK(t)
value.chain.reset()
value.Gt(1234)
value.chain.assertFailed(t)
value.chain.reset()
value.Ge(1234 - 1)
value.chain.assertOK(t)
value.chain.reset()
value.Ge(1234)
value.chain.assertOK(t)
value.chain.reset()
value.Ge(1234 + 1)
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberLesser(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.Lt(1234 + 1)
value.chain.assertOK(t)
value.chain.reset()
value.Lt(1234)
value.chain.assertFailed(t)
value.chain.reset()
value.Le(1234 + 1)
value.chain.assertOK(t)
value.chain.reset()
value.Le(1234)
value.chain.assertOK(t)
value.chain.reset()
value.Le(1234 - 1)
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberInRange(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.InRange(1234, 1234)
value.chain.assertOK(t)
value.chain.reset()
value.InRange(1234-1, 1234)
value.chain.assertOK(t)
value.chain.reset()
value.InRange(1234, 1234+1)
value.chain.assertOK(t)
value.chain.reset()
value.InRange(1234+1, 1234+2)
value.chain.assertFailed(t)
value.chain.reset()
value.InRange(1234-2, 1234-1)
value.chain.assertFailed(t)
value.chain.reset()
value.InRange(1234+1, 1234-1)
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberConvertEqual(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.Equal(int64(1234))
value.chain.assertOK(t)
value.chain.reset()
value.Equal(float32(1234))
value.chain.assertOK(t)
value.chain.reset()
value.Equal("1234")
value.chain.assertFailed(t)
value.chain.reset()
value.NotEqual(int64(4321))
value.chain.assertOK(t)
value.chain.reset()
value.NotEqual(float32(4321))
value.chain.assertOK(t)
value.chain.reset()
value.NotEqual("4321")
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberConvertGreater(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.Gt(int64(1233))
value.chain.assertOK(t)
value.chain.reset()
value.Gt(float32(1233))
value.chain.assertOK(t)
value.chain.reset()
value.Gt("1233")
value.chain.assertFailed(t)
value.chain.reset()
value.Ge(int64(1233))
value.chain.assertOK(t)
value.chain.reset()
value.Ge(float32(1233))
value.chain.assertOK(t)
value.chain.reset()
value.Ge("1233")
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberConvertLesser(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.Lt(int64(1235))
value.chain.assertOK(t)
value.chain.reset()
value.Lt(float32(1235))
value.chain.assertOK(t)
value.chain.reset()
value.Lt("1235")
value.chain.assertFailed(t)
value.chain.reset()
value.Le(int64(1235))
value.chain.assertOK(t)
value.chain.reset()
value.Le(float32(1235))
value.chain.assertOK(t)
value.chain.reset()
value.Le("1235")
value.chain.assertFailed(t)
value.chain.reset()
}
func TestNumberConvertInRange(t *testing.T) {
reporter := newMockReporter(t)
value := NewNumber(reporter, 1234)
value.InRange(int64(1233), float32(1235))
value.chain.assertOK(t)
value.chain.reset()
value.InRange(int64(1233), "1235")
value.chain.assertFailed(t)
value.chain.reset()
value.InRange(nil, 1235)
value.chain.assertFailed(t)
value.chain.reset()
}