modelRT/repository/redis/data_object_redis_change_te...

45 lines
1.0 KiB
Go
Raw Normal View History

package redis
import (
"testing"
"github.com/redis/go-redis/v9"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestRedisChangeStringUsesCacheRepresentations(t *testing.T) {
tests := []struct {
name string
value any
want string
}{
{name: "string", value: "15.2", want: "15.2"},
{name: "integer", value: int64(15), want: "15"},
{name: "decimal", value: 15.2, want: "15.2"},
{name: "boolean", value: true, want: "true"},
{name: "object", value: map[string]any{"enabled": true}, want: `{"enabled":true}`},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
got, err := redisChangeString(test.value)
require.NoError(t, err)
assert.Equal(t, test.want, got)
})
}
}
func TestMergeRedisZValuesReplacesDuplicateMemberAndSorts(t *testing.T) {
values := mergeRedisZValues(
[]redis.Z{
{Score: 20, Member: "2"},
{Score: 10, Member: "1"},
},
redis.Z{Score: 30, Member: "1"},
)
assert.Equal(t, []redis.Z{
{Score: 20, Member: "2"},
{Score: 30, Member: "1"},
}, values)
}