1
0
mirror of https://github.com/danog/liquid.git synced 2024-11-27 01:34:41 +01:00
liquid/evaluator/evaluator_test.go

64 lines
1.4 KiB
Go
Raw Normal View History

2017-07-05 17:35:07 +02:00
package evaluator
2017-06-28 03:30:47 +02:00
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
)
2017-06-28 04:54:27 +02:00
var lessTests = []struct {
2017-06-28 03:30:47 +02:00
a, b interface{}
expected bool
}{
2017-06-28 15:36:39 +02:00
{nil, nil, false},
{false, true, true},
{false, false, false},
{false, nil, false},
{nil, false, false},
2017-06-28 03:30:47 +02:00
{0, 1, true},
{1, 0, false},
{1, 1, false},
2017-06-28 15:36:39 +02:00
{1, 2.1, true},
{1.1, 2, true},
{2.1, 1, false},
2017-06-28 03:30:47 +02:00
{"a", "b", true},
{"b", "a", false},
2017-06-28 15:36:39 +02:00
{[]string{"a"}, []string{"a"}, false},
2017-06-28 03:30:47 +02:00
}
func TestLess(t *testing.T) {
2017-06-28 04:54:27 +02:00
for i, test := range lessTests {
2017-06-28 15:36:39 +02:00
t.Run(fmt.Sprintf("%02d", i+1), func(t *testing.T) {
2017-06-28 03:30:47 +02:00
value := Less(test.a, test.b)
2017-06-28 15:36:39 +02:00
require.Equalf(t, test.expected, value, "%#v < %#v", test.a, test.b)
2017-06-28 03:30:47 +02:00
})
}
}
2017-06-28 20:41:46 +02:00
func TestLength(t *testing.T) {
require.Equal(t, 3, Length([]int{1, 2, 3}))
require.Equal(t, 3, Length("abc"))
require.Equal(t, 0, Length(map[string]int{"a": 1}))
}
2017-07-02 14:35:06 +02:00
func TestSort(t *testing.T) {
array := []interface{}{2, 1}
Sort(array)
require.Equal(t, []interface{}{1, 2}, array)
array = []interface{}{"b", "a"}
Sort(array)
require.Equal(t, []interface{}{"a", "b"}, array)
array = []interface{}{
map[string]interface{}{"key": 20},
map[string]interface{}{"key": 10},
map[string]interface{}{},
}
SortByProperty(array, "key", true)
require.Equal(t, nil, array[0].(map[string]interface{})["key"])
require.Equal(t, 10, array[1].(map[string]interface{})["key"])
require.Equal(t, 20, array[2].(map[string]interface{})["key"])
}