entities_test.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package entities
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestLoadObjectPerLineJsonFile(t *testing.T) {
  8. /*
  9. filename := "testdata/object-per-line.json"
  10. assert.Equal(t, "", GetEntity("testrow", "0"), "Value should match expected value")
  11. loadEntityFileJson(filename, "testrow")
  12. assert.Equal(t, "1234567890", GetEntity("testrow", "0"), "Value should match expected value")
  13. */
  14. }
  15. func TestGetEntityInstancesOrdered_numericKeys(t *testing.T) {
  16. ClearEntitiesOfType("order_test")
  17. defer ClearEntitiesOfType("order_test")
  18. AddEntity("order_test", "2", map[string]any{"title": "Second"})
  19. AddEntity("order_test", "0", map[string]any{"title": "Zeroth"})
  20. AddEntity("order_test", "10", map[string]any{"title": "Tenth"})
  21. AddEntity("order_test", "1", map[string]any{"title": "First"})
  22. ordered := GetEntityInstancesOrdered("order_test")
  23. require.Len(t, ordered, 4, "should return 4 entities")
  24. assert.Equal(t, "0", ordered[0].UniqueKey, "first key should be 0")
  25. assert.Equal(t, "1", ordered[1].UniqueKey, "second key should be 1")
  26. assert.Equal(t, "2", ordered[2].UniqueKey, "third key should be 2")
  27. assert.Equal(t, "10", ordered[3].UniqueKey, "fourth key should be 10 (numeric order)")
  28. }
  29. func TestGetEntityInstancesOrdered_lexicographicKeys(t *testing.T) {
  30. ClearEntitiesOfType("order_test_lex")
  31. defer ClearEntitiesOfType("order_test_lex")
  32. AddEntity("order_test_lex", "zebra", map[string]any{"title": "Z"})
  33. AddEntity("order_test_lex", "alpha", map[string]any{"title": "A"})
  34. AddEntity("order_test_lex", "beta", map[string]any{"title": "B"})
  35. ordered := GetEntityInstancesOrdered("order_test_lex")
  36. require.Len(t, ordered, 3, "should return 3 entities")
  37. assert.Equal(t, "alpha", ordered[0].UniqueKey)
  38. assert.Equal(t, "beta", ordered[1].UniqueKey)
  39. assert.Equal(t, "zebra", ordered[2].UniqueKey)
  40. }
  41. func TestGetEntityInstancesOrdered_emptyOrMissing(t *testing.T) {
  42. ordered := GetEntityInstancesOrdered("nonexistent_type")
  43. assert.Nil(t, ordered)
  44. ClearEntitiesOfType("empty_test")
  45. ordered = GetEntityInstancesOrdered("empty_test")
  46. assert.Nil(t, ordered)
  47. }