github.com/TIBCOSoftware/flogo-lib@v0.5.9/core/data/coercion_test.go (about) 1 package data 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "os" 8 "github.com/TIBCOSoftware/flogo-lib/config" 9 ) 10 11 func TestCoerceToString(t *testing.T) { 12 13 os.Setenv(config.ENV_DATA_SECRET_KEY_KEY, "SecretKey") 14 defer func() { 15 os.Unsetenv(config.ENV_DATA_SECRET_KEY_KEY) 16 }() 17 18 var valInt interface{} = 2 19 cval, _ := CoerceToString(valInt) 20 assert.Equal(t, "2", cval, "not equal") 21 22 var valBool interface{} = true 23 cval, _ = CoerceToString(valBool) 24 assert.Equal(t, "true", cval, "not equal") 25 26 var valStr interface{} = "12" 27 cval, _ = CoerceToString(valStr) 28 assert.Equal(t, "12", cval, "not equal") 29 30 var valFloat interface{} = 1.23 31 cval, _ = CoerceToString(valFloat) 32 assert.Equal(t, "1.23", cval, "not equal") 33 34 var valNil interface{} // = nil 35 cval, _ = CoerceToString(valNil) 36 assert.Equal(t, "", cval, "not equal") 37 } 38 39 func TestCoerceToInteger(t *testing.T) { 40 41 var valInt interface{} = 2 42 cval, _ := CoerceToInteger(valInt) 43 assert.Equal(t, 2, cval, "not equal") 44 45 var valBool interface{} = true 46 cval, _ = CoerceToInteger(valBool) 47 assert.Equal(t, 1, cval, "not equal") 48 49 var valStr interface{} = "12" 50 cval, _ = CoerceToInteger(valStr) 51 assert.Equal(t, 12, cval, "not equal") 52 53 var valFloat interface{} = 1.23 54 cval, _ = CoerceToInteger(valFloat) 55 assert.Equal(t, 1, cval, "not equal") 56 57 var valNil interface{} //= nil 58 cval, _ = CoerceToInteger(valNil) 59 assert.Equal(t, 0, cval, "not equal") 60 } 61 62 func TestCoerceToNumber(t *testing.T) { 63 64 var valInt interface{} = 2 65 cval, _ := CoerceToNumber(valInt) 66 assert.Equal(t, 2.0, cval, "not equal") 67 68 var valBool interface{} = true 69 cval, _ = CoerceToNumber(valBool) 70 assert.Equal(t, 1.0, cval, "not equal") 71 72 var valStr interface{} = "12" 73 cval, _ = CoerceToNumber(valStr) 74 assert.Equal(t, 12.0, cval, "not equal") 75 76 var valFloat interface{} = 1.23 77 cval, _ = CoerceToNumber(valFloat) 78 assert.Equal(t, 1.23, cval, "not equal") 79 80 var valNil interface{} //= nil 81 cval, _ = CoerceToNumber(valNil) 82 assert.Equal(t, 0.0, cval, "not equal") 83 } 84 85 func TestCoerceToBoolean(t *testing.T) { 86 87 var valInt interface{} = 2 88 cval, _ := CoerceToBoolean(valInt) 89 assert.Equal(t, true, cval, "not equal") 90 91 var valBool interface{} = true 92 cval, _ = CoerceToBoolean(valBool) 93 assert.Equal(t, true, cval, "not equal") 94 95 var valStr interface{} = "false" 96 cval, _ = CoerceToBoolean(valStr) 97 assert.Equal(t, false, cval, "not equal") 98 99 var valFloat interface{} = 1.23 100 cval, _ = CoerceToBoolean(valFloat) 101 assert.Equal(t, true, cval, "not equal") 102 103 var valNil interface{} //= nil 104 cval, _ = CoerceToBoolean(valNil) 105 assert.Equal(t, false, cval, "not equal") 106 } 107 108 func TestUnmarshComplexObject(t *testing.T) { 109 complexStr := `{"metadata":"this is metdata string","value":""}` 110 complexObject, err := CoerceToComplexObject(complexStr) 111 assert.Nil(t, err) 112 assert.NotNil(t, complexObject) 113 assert.NotEqual(t, "", complexObject.Value) 114 }