mirror of
https://github.com/joohoi/acme-dns.git
synced 2025-07-10 15:57:51 +07:00
340 lines
6.2 KiB
Go
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()
|
|
}
|