github.com/System-Glitch/goyave/v2@v2.10.3-0.20200819142921-51011e75d504/validation/numeric_test.go (about) 1 package validation 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestValidateNumeric(t *testing.T) { 10 assert.True(t, validateNumeric("field", 1, []string{}, map[string]interface{}{"field": 1})) 11 assert.True(t, validateNumeric("field", 1.2, []string{}, map[string]interface{}{"field": 1.2})) 12 assert.True(t, validateNumeric("field", uint(1), []string{}, map[string]interface{}{"field": uint(1)})) 13 assert.True(t, validateNumeric("field", uint8(1), []string{}, map[string]interface{}{"field": uint8(1)})) 14 assert.True(t, validateNumeric("field", uint16(1), []string{}, map[string]interface{}{"field": uint16(1)})) 15 assert.True(t, validateNumeric("field", float32(1.3), []string{}, map[string]interface{}{"field": float32(1.3)})) 16 assert.True(t, validateNumeric("field", "2", []string{}, map[string]interface{}{"field": "2"})) 17 assert.True(t, validateNumeric("field", "1.2", []string{}, map[string]interface{}{"field": "1.2"})) 18 assert.True(t, validateNumeric("field", "-1", []string{}, map[string]interface{}{"field": "-1"})) 19 assert.True(t, validateNumeric("field", "-1.3", []string{}, map[string]interface{}{"field": "1.3"})) 20 assert.False(t, validateNumeric("field", uintptr(1), []string{}, map[string]interface{}{"field": uintptr(1)})) 21 assert.False(t, validateNumeric("field", []string{}, []string{}, map[string]interface{}{"field": []string{}})) 22 assert.False(t, validateNumeric("field", map[string]string{}, []string{}, map[string]interface{}{"field": map[string]string{}})) 23 assert.False(t, validateNumeric("field", "test", []string{}, map[string]interface{}{"field": "test"})) 24 } 25 26 func TestValidateNumericConvertString(t *testing.T) { 27 form1 := map[string]interface{}{"field": "1.2"} 28 validateNumeric("field", form1["field"], []string{}, form1) 29 assert.Equal(t, 1.2, form1["field"]) 30 31 form2 := map[string]interface{}{"field": "-1.3"} 32 validateNumeric("field", form2["field"], []string{}, form2) 33 assert.Equal(t, -1.3, form2["field"]) 34 35 form3 := map[string]interface{}{"field": "2"} 36 validateNumeric("field", form3["field"], []string{}, form3) 37 assert.Equal(t, float64(2), form3["field"]) 38 } 39 40 func TestValidateInteger(t *testing.T) { 41 assert.True(t, validateInteger("field", 1, []string{}, map[string]interface{}{"field": 1})) 42 assert.True(t, validateInteger("field", float64(2), []string{}, map[string]interface{}{"field": float64(2)})) 43 assert.True(t, validateInteger("field", float32(3), []string{}, map[string]interface{}{"field": float32(3)})) 44 assert.True(t, validateInteger("field", uint(1), []string{}, map[string]interface{}{"field": uint(1)})) 45 assert.True(t, validateInteger("field", uint8(1), []string{}, map[string]interface{}{"field": uint8(1)})) 46 assert.True(t, validateInteger("field", uint16(1), []string{}, map[string]interface{}{"field": uint16(1)})) 47 assert.True(t, validateInteger("field", "2", []string{}, map[string]interface{}{"field": "2"})) 48 assert.True(t, validateInteger("field", "-1", []string{}, map[string]interface{}{"field": "-1"})) 49 assert.False(t, validateInteger("field", 2.2, []string{}, map[string]interface{}{"field": 2.2})) 50 assert.False(t, validateInteger("field", float32(3.2), []string{}, map[string]interface{}{"field": float32(3.2)})) 51 assert.False(t, validateInteger("field", "1.2", []string{}, map[string]interface{}{"field": "1.2"})) 52 assert.False(t, validateInteger("field", "-1.3", []string{}, map[string]interface{}{"field": "1.3"})) 53 assert.False(t, validateInteger("field", uintptr(1), []string{}, map[string]interface{}{"field": uintptr(1)})) 54 assert.False(t, validateInteger("field", []string{}, []string{}, map[string]interface{}{"field": []string{}})) 55 assert.False(t, validateInteger("field", map[string]string{}, []string{}, map[string]interface{}{"field": map[string]string{}})) 56 assert.False(t, validateInteger("field", "test", []string{}, map[string]interface{}{"field": "test"})) 57 } 58 59 func TestValidateIntegerConvert(t *testing.T) { 60 form1 := map[string]interface{}{"field": "1"} 61 validateInteger("field", form1["field"], []string{}, form1) 62 assert.Equal(t, 1, form1["field"]) 63 64 form2 := map[string]interface{}{"field": "-2"} 65 validateInteger("field", form2["field"], []string{}, form2) 66 assert.Equal(t, -2, form2["field"]) 67 68 form3 := map[string]interface{}{"field": float64(3)} 69 validateInteger("field", form3["field"], []string{}, form3) 70 assert.Equal(t, 3, form3["field"]) 71 }