File: coerce_test.go

package info (click to toggle)
golang-github-araddon-gou 0.0~git20180509.7db4be5-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 160 kB
  • sloc: makefile: 2
file content (36 lines) | stat: -rw-r--r-- 1,654 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package gou

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestCoerce(t *testing.T) {

	data := map[string]interface{}{
		"int":         4,
		"float":       45.3,
		"string":      "22",
		"stringf":     "22.2",
		"boolt":       true,
		"emptystring": "",
	}
	assert.True(t, CoerceStringShort(data["int"]) == "4", "get int as string")
	assert.True(t, CoerceStringShort(data["float"]) == "45.3", "get float as string: %v", data["float"])
	assert.True(t, CoerceStringShort(data["string"]) == "22", "get string as string: %v", data["string"])
	assert.True(t, CoerceStringShort(data["stringf"]) == "22.2", "get stringf as string: %v", data["stringf"])
	assert.Equal(t, "true", CoerceStringShort(data["boolt"]))

	assert.True(t, CoerceIntShort(data["int"]) == 4, "get int as int: %v", data["int"])
	assert.True(t, CoerceIntShort(data["float"]) == 45, "get float as int: %v", data["float"])
	assert.True(t, CoerceIntShort(data["string"]) == 22, "get string as int: %v", data["string"])
	assert.True(t, CoerceIntShort(data["stringf"]) == 22, "get stringf as int: %v", data["stringf"])

	assert.Equal(t, 0, len(CoerceStrings(data["emptystring"])), "get emptystring as []string: %v", data["emptystring"])
	assert.Equal(t, []string{"22"}, CoerceStrings(data["string"]), "get string as []string: %v", data["string"])
	assert.Equal(t, []string{"4"}, CoerceStrings(data["int"]), "get int as []string: %v", data["int"])

	assert.Equal(t, []float64{float64(4)}, CoerceFloats(data["int"]), "get int as []float64: %v", data["int"])
	assert.Equal(t, []float64{float64(45.3)}, CoerceFloats(data["float"]), "get float as []float64: %v", data["float"])
}