package mdb_test import ( _ "embed" "testing" "git.sunturtle.xyz/zephyr/horse" "git.sunturtle.xyz/zephyr/horse/mdb" "github.com/google/go-cmp/cmp" ) //go:embed testdata/character.sql var characterSQL string func TestCharacters(t *testing.T) { db := testdb(t.Context(), "file:TestCharacters?mode=memory&cache=shared", characterSQL) got, err := mdb.Characters(t.Context(), db) if err != nil { t.Error(err) } want := []horse.Character{ {ID: 1001, Name: "Special Week"}, {ID: 1002, Name: "Silence Suzuka"}, {ID: 1078, Name: "Yamanin Zephyr"}, {ID: 2001, Name: "Happy Meek"}, {ID: 9001, Name: "Tazuna Hayakawa"}, } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("wrong characters (+got/-want):\n%s", diff) } } func TestAffinitySummary(t *testing.T) { db := testdb(t.Context(), "file:TestAffinitySummary?mode=memory&cache=shared", characterSQL) got, err := mdb.AffinitySummary(t.Context(), db) if err != nil { t.Error(err) } want := []horse.AffinityRelation{ {IDA: 1001, IDB: 1002, Affinity: 23}, } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("wrong affinity (+got/-want):\n%s", diff) } } func TestUmas(t *testing.T) { db := testdb(t.Context(), "file:TestUmas?mode=memory&cache=shared", characterSQL) got, err := mdb.Umas(t.Context(), db) if err != nil { t.Error(err) } want := []horse.Uma{ { ID: 100101, CharacterID: 1001, Name: `[Special Dreamer] Special Week`, Variant: `[Special Dreamer]`, Sprint: 2, Mile: 5, Medium: 7, Long: 7, Front: 1, Pace: 7, Late: 7, End: 5, Turf: 7, Dirt: 1, Unique: 100011, Skill1: 200512, Skill2: 201352, Skill3: 200732, SkillPL2: 200162, SkillPL3: 201351, SkillPL4: 200612, SkillPL5: 200511, }, { ID: 100102, CharacterID: 1001, Name: `[Hopp'n♪Happy Heart] Special Week`, Variant: `[Hopp'n♪Happy Heart]`, Sprint: 2, Mile: 5, Medium: 7, Long: 7, Front: 1, Pace: 7, Late: 7, End: 5, Turf: 7, Dirt: 1, Unique: 110011, Skill1: 200462, Skill2: 200592, Skill3: 201132, SkillPL2: 200212, SkillPL3: 200591, SkillPL4: 201611, SkillPL5: 200461, }, { ID: 100201, CharacterID: 1002, Name: `[Innocent Silence] Silence Suzuka`, Variant: `[Innocent Silence]`, Sprint: 4, Mile: 7, Medium: 7, Long: 3, Front: 7, Pace: 5, Late: 3, End: 1, Turf: 7, Dirt: 1, Unique: 100021, Skill1: 200432, Skill2: 200552, Skill3: 200712, SkillPL2: 200022, SkillPL3: 200431, SkillPL4: 200542, SkillPL5: 200551, }, } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("wrong umas (+got/-want):\n%s", diff) } } func TestConversations(t *testing.T) { db := testdb(t.Context(), "file:TestConversations?mode=memory&cache=shared", characterSQL) got, err := mdb.Conversations(t.Context(), db) if err != nil { t.Error(err) } want := []horse.Conversation{ { CharacterID: 1001, Number: 1, Location: 410, Chara1: 1001, }, { CharacterID: 1001, Number: 2, Location: 510, Chara1: 1001, ConditionType: 1, }, { CharacterID: 1001, Number: 3, Location: 310, Chara1: 1001, ConditionType: 1, }, { CharacterID: 1001, Number: 4, Location: 120, Chara1: 1001, Chara2: 1002, ConditionType: 2, }, { CharacterID: 1001, Number: 5, Location: 520, Chara1: 1003, Chara2: 1001, ConditionType: 3, }, { CharacterID: 1001, Number: 6, Location: 430, Chara1: 1001, Chara2: 1014, Chara3: 1011, ConditionType: 1, }, { CharacterID: 1002, Number: 1, Location: 310, Chara1: 1002, }, { CharacterID: 1002, Number: 2, Location: 210, Chara1: 1002, ConditionType: 1, }, { CharacterID: 1002, Number: 3, Location: 110, Chara1: 1002, ConditionType: 1, }, { CharacterID: 1002, Number: 4, Location: 520, Chara1: 1010, Chara2: 1002, ConditionType: 3, }, { CharacterID: 1002, Number: 5, Location: 220, Chara1: 1002, Chara2: 1018, ConditionType: 2, }, } if diff := cmp.Diff(want, got); diff != "" { t.Errorf("wrong conversations (+got/-want):\n%s", diff) } }