326 lines
9.2 KiB
Go
326 lines
9.2 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 TestAffinityDetail(t *testing.T) {
|
|
db := testdb(t.Context(), "file:TestAffinityDetail?mode=memory&cache=shared", characterSQL)
|
|
got, err := mdb.AffinityDetail(t.Context(), db)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
want := []horse.AffinityDetail{
|
|
{CharaID: 1001, Relation: 103, Affinity: 2},
|
|
{CharaID: 1001, Relation: 202, Affinity: 2},
|
|
{CharaID: 1001, Relation: 301, Affinity: 2},
|
|
{CharaID: 1001, Relation: 401, Affinity: 2},
|
|
{CharaID: 1001, Relation: 502, Affinity: 2},
|
|
{CharaID: 1001, Relation: 510, Affinity: 2},
|
|
{CharaID: 1001, Relation: 2001, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2102, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2301, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2406, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2506, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2510, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2516, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2519, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2601, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2603, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2811, Affinity: 1},
|
|
{CharaID: 1001, Relation: 2903, Affinity: 7},
|
|
{CharaID: 1001, Relation: 3003, Affinity: 7},
|
|
{CharaID: 1001, Relation: 3004, Affinity: 7},
|
|
{CharaID: 1001, Relation: 3101, Affinity: 7},
|
|
{CharaID: 1001, Relation: 3205, Affinity: 1},
|
|
{CharaID: 1001, Relation: 7003, Affinity: 1},
|
|
{CharaID: 1001, Relation: 7004, Affinity: 1},
|
|
{CharaID: 1001, Relation: 7005, Affinity: 1},
|
|
{CharaID: 1001, Relation: 7006, Affinity: 1},
|
|
{CharaID: 1001, Relation: 7007, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8001, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8002, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8003, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8004, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8005, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8006, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8007, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8008, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8009, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8010, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8011, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8012, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8013, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8014, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8015, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8016, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8443, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8479, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8511, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8536, Affinity: 1},
|
|
{CharaID: 1001, Relation: 8640, Affinity: 1},
|
|
{CharaID: 1002, Relation: 104, Affinity: 2},
|
|
{CharaID: 1002, Relation: 202, Affinity: 2},
|
|
{CharaID: 1002, Relation: 301, Affinity: 2},
|
|
{CharaID: 1002, Relation: 402, Affinity: 2},
|
|
{CharaID: 1002, Relation: 2001, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2406, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2512, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2601, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2603, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2810, Affinity: 1},
|
|
{CharaID: 1002, Relation: 2901, Affinity: 7},
|
|
{CharaID: 1002, Relation: 3003, Affinity: 7},
|
|
{CharaID: 1002, Relation: 3101, Affinity: 7},
|
|
{CharaID: 1002, Relation: 3205, Affinity: 1},
|
|
{CharaID: 1002, Relation: 7000, Affinity: 1},
|
|
{CharaID: 1002, Relation: 7001, Affinity: 1},
|
|
{CharaID: 1002, Relation: 7002, Affinity: 1},
|
|
{CharaID: 1002, Relation: 7013, Affinity: 1},
|
|
{CharaID: 1002, Relation: 7015, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8017, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8018, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8019, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8020, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8021, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8022, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8023, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8024, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8025, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8026, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8027, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8028, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8029, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8030, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8031, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8032, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8444, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8480, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8512, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8537, Affinity: 1},
|
|
{CharaID: 1002, Relation: 8641, Affinity: 1},
|
|
}
|
|
if diff := cmp.Diff(want, got); diff != "" {
|
|
t.Errorf("wrong affinity details (+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)
|
|
}
|
|
}
|