olivetin/service/internal/entities/entities_test.go

62 lines
2.1 KiB
Go

package entities
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestLoadObjectPerLineJsonFile(t *testing.T) {
/*
filename := "testdata/object-per-line.json"
assert.Equal(t, "", GetEntity("testrow", "0"), "Value should match expected value")
loadEntityFileJson(filename, "testrow")
assert.Equal(t, "1234567890", GetEntity("testrow", "0"), "Value should match expected value")
*/
}
func TestGetEntityInstancesOrdered_numericKeys(t *testing.T) {
ClearEntitiesOfType("order_test")
defer ClearEntitiesOfType("order_test")
AddEntity("order_test", "2", map[string]any{"title": "Second"})
AddEntity("order_test", "0", map[string]any{"title": "Zeroth"})
AddEntity("order_test", "10", map[string]any{"title": "Tenth"})
AddEntity("order_test", "1", map[string]any{"title": "First"})
ordered := GetEntityInstancesOrdered("order_test")
require.Len(t, ordered, 4, "should return 4 entities")
assert.Equal(t, "0", ordered[0].UniqueKey, "first key should be 0")
assert.Equal(t, "1", ordered[1].UniqueKey, "second key should be 1")
assert.Equal(t, "2", ordered[2].UniqueKey, "third key should be 2")
assert.Equal(t, "10", ordered[3].UniqueKey, "fourth key should be 10 (numeric order)")
}
func TestGetEntityInstancesOrdered_lexicographicKeys(t *testing.T) {
ClearEntitiesOfType("order_test_lex")
defer ClearEntitiesOfType("order_test_lex")
AddEntity("order_test_lex", "zebra", map[string]any{"title": "Z"})
AddEntity("order_test_lex", "alpha", map[string]any{"title": "A"})
AddEntity("order_test_lex", "beta", map[string]any{"title": "B"})
ordered := GetEntityInstancesOrdered("order_test_lex")
require.Len(t, ordered, 3, "should return 3 entities")
assert.Equal(t, "alpha", ordered[0].UniqueKey)
assert.Equal(t, "beta", ordered[1].UniqueKey)
assert.Equal(t, "zebra", ordered[2].UniqueKey)
}
func TestGetEntityInstancesOrdered_emptyOrMissing(t *testing.T) {
ordered := GetEntityInstancesOrdered("nonexistent_type")
assert.Nil(t, ordered)
ClearEntitiesOfType("empty_test")
ordered = GetEntityInstancesOrdered("empty_test")
assert.Nil(t, ordered)
}