225 lines
4.7 KiB
Go
225 lines
4.7 KiB
Go
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)
|
|
}
|
|
}
|