added tests
This commit is contained in:
+34
-20
@@ -88,7 +88,7 @@ func (object *LookupList) Create() error {
|
||||
|
||||
func (object *LookupList) First(value string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND name = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND name = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -98,7 +98,7 @@ func (object *LookupList) First(value string) error {
|
||||
|
||||
func (object *LookupList) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -114,9 +114,11 @@ func (object *LookupList) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Skill) TableName() string {
|
||||
return dbPrefix + "_" + "skills"
|
||||
}
|
||||
|
||||
func (stamm *Skill) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -133,7 +135,7 @@ func (stamm *Skill) Create() error {
|
||||
|
||||
func (stamm *Skill) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// Fertigkeit found
|
||||
return err
|
||||
@@ -143,7 +145,7 @@ func (stamm *Skill) First(name string) error {
|
||||
|
||||
func (object *Skill) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -176,7 +178,7 @@ func (object *Skill) GetSkillCategories() ([]string, error) {
|
||||
gameSystem := "midgard"
|
||||
|
||||
result := database.DB.Model(&Skill{}).
|
||||
Where("system = ? and category is not null", gameSystem).
|
||||
Where("game_system = ? and category is not null", gameSystem).
|
||||
Distinct().
|
||||
Pluck("category", &categories)
|
||||
|
||||
@@ -190,6 +192,7 @@ func (object *Skill) GetSkillCategories() ([]string, error) {
|
||||
func (object *WeaponSkill) TableName() string {
|
||||
return dbPrefix + "_" + "weaponskills"
|
||||
}
|
||||
|
||||
func (stamm *WeaponSkill) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -206,7 +209,7 @@ func (stamm *WeaponSkill) Create() error {
|
||||
|
||||
func (stamm *WeaponSkill) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// Fertigkeit found
|
||||
return err
|
||||
@@ -216,7 +219,7 @@ func (stamm *WeaponSkill) First(name string) error {
|
||||
|
||||
func (object *WeaponSkill) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -232,9 +235,11 @@ func (object *WeaponSkill) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Spell) TableName() string {
|
||||
return dbPrefix + "_" + "spells"
|
||||
}
|
||||
|
||||
func (stamm *Spell) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -251,7 +256,7 @@ func (stamm *Spell) Create() error {
|
||||
|
||||
func (stamm *Spell) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -261,7 +266,7 @@ func (stamm *Spell) First(name string) error {
|
||||
|
||||
func (object *Spell) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -283,7 +288,7 @@ func (object *Spell) GetSpellCategories() ([]string, error) {
|
||||
gameSystem := "midgard"
|
||||
|
||||
result := database.DB.Model(&Spell{}).
|
||||
Where("system = ? and category is not null", gameSystem).
|
||||
Where("game_system=? and category is not null", gameSystem).
|
||||
Distinct().
|
||||
Pluck("category", &categories)
|
||||
|
||||
@@ -297,6 +302,7 @@ func (object *Spell) GetSpellCategories() ([]string, error) {
|
||||
func (object *Equipment) TableName() string {
|
||||
return dbPrefix + "_" + "equipments"
|
||||
}
|
||||
|
||||
func (stamm *Equipment) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -313,7 +319,7 @@ func (stamm *Equipment) Create() error {
|
||||
|
||||
func (stamm *Equipment) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -323,7 +329,7 @@ func (stamm *Equipment) First(name string) error {
|
||||
|
||||
func (object *Equipment) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -339,9 +345,11 @@ func (object *Equipment) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Weapon) TableName() string {
|
||||
return dbPrefix + "_" + "weapons"
|
||||
}
|
||||
|
||||
func (stamm *Weapon) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -358,7 +366,7 @@ func (stamm *Weapon) Create() error {
|
||||
|
||||
func (stamm *Weapon) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -368,7 +376,7 @@ func (stamm *Weapon) First(name string) error {
|
||||
|
||||
func (object *Weapon) FirstId(id uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, id).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, id).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -383,9 +391,11 @@ func (object *Weapon) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Container) TableName() string {
|
||||
return dbPrefix + "_" + "containers"
|
||||
}
|
||||
|
||||
func (stamm *Container) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -402,7 +412,7 @@ func (stamm *Container) Create() error {
|
||||
|
||||
func (stamm *Container) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -412,7 +422,7 @@ func (stamm *Container) First(name string) error {
|
||||
|
||||
func (object *Container) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -428,9 +438,11 @@ func (object *Container) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Transportation) TableName() string {
|
||||
return dbPrefix + "_" + "transportations"
|
||||
}
|
||||
|
||||
func (stamm *Transportation) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -447,7 +459,7 @@ func (stamm *Transportation) Create() error {
|
||||
|
||||
func (object *Transportation) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -457,7 +469,7 @@ func (object *Transportation) FirstId(value uint) error {
|
||||
|
||||
func (stamm *Transportation) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -473,9 +485,11 @@ func (object *Transportation) Save() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (object *Believe) TableName() string {
|
||||
return dbPrefix + "_" + "believes"
|
||||
}
|
||||
|
||||
func (stamm *Believe) Create() error {
|
||||
gameSystem := "midgard"
|
||||
stamm.GameSystem = gameSystem
|
||||
@@ -492,7 +506,7 @@ func (stamm *Believe) Create() error {
|
||||
|
||||
func (object *Believe) FirstId(value uint) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND id = ?", gameSystem, value).Error
|
||||
err := database.DB.First(&object, "game_system=? AND id = ?", gameSystem, value).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
@@ -502,7 +516,7 @@ func (object *Believe) FirstId(value uint) error {
|
||||
|
||||
func (stamm *Believe) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&stamm, "system=? AND name = ?", gameSystem, name).Error
|
||||
err := database.DB.First(&stamm, "game_system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
|
||||
@@ -0,0 +1,414 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"bamort/gsmaster"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestSkill_Create(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
skill *gsmaster.Skill
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "valid skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Skill",
|
||||
Beschreibung: "Test Description",
|
||||
Quelle: "Test Source",
|
||||
},
|
||||
Initialwert: 5,
|
||||
Bonuseigenschaft: "st",
|
||||
Improvable: true,
|
||||
InnateSkill: false,
|
||||
Category: "Test Category",
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
/*{
|
||||
name: "nil skill",
|
||||
skill: nil,
|
||||
wantErr: true,
|
||||
},*/
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := tt.skill.Create()
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "midgard", tt.skill.GameSystem)
|
||||
assert.NotZero(t, tt.skill.ID)
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestWeaponSkill_Create(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
weaponSkill *gsmaster.WeaponSkill
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "valid weapon skill",
|
||||
weaponSkill: &gsmaster.WeaponSkill{
|
||||
Skill: gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Weapon Skill",
|
||||
Beschreibung: "Test Description",
|
||||
Quelle: "Test Source",
|
||||
},
|
||||
Initialwert: 5,
|
||||
Bonuseigenschaft: "st",
|
||||
Improvable: true,
|
||||
InnateSkill: false,
|
||||
Category: "Test Category",
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
/*{
|
||||
name: "nil weapon skill",
|
||||
weaponSkill: nil,
|
||||
wantErr: true,
|
||||
},*/
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
err := tt.weaponSkill.Create()
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "midgard", tt.weaponSkill.GameSystem)
|
||||
assert.NotZero(t, tt.weaponSkill.ID)
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_TableName(t *testing.T) {
|
||||
SetupTestDB()
|
||||
skill := &gsmaster.Skill{}
|
||||
expected := "gsm_skills"
|
||||
assert.Equal(t, expected, skill.TableName())
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_First(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
skill *gsmaster.Skill
|
||||
findName string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "existing skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
},
|
||||
findName: "Test Skill",
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "non-existing skill",
|
||||
skill: &gsmaster.Skill{},
|
||||
findName: "NonExistent",
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "empty name",
|
||||
skill: &gsmaster.Skill{},
|
||||
findName: "",
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if !tt.wantErr {
|
||||
// Create test data first
|
||||
err := tt.skill.Create()
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
s := &gsmaster.Skill{}
|
||||
err := s.First(tt.findName)
|
||||
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tt.skill.Name, s.Name)
|
||||
assert.Equal(t, "midgard", s.GameSystem)
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_FirstId(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
skill *gsmaster.Skill
|
||||
findId uint
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "existing skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
},
|
||||
findId: 1,
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "non-existing id",
|
||||
skill: &gsmaster.Skill{},
|
||||
findId: 9999,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "zero id",
|
||||
skill: &gsmaster.Skill{},
|
||||
findId: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if !tt.wantErr {
|
||||
// Create test data first
|
||||
err := tt.skill.Create()
|
||||
assert.NoError(t, err)
|
||||
tt.findId = tt.skill.ID
|
||||
}
|
||||
|
||||
s := &gsmaster.Skill{}
|
||||
err := s.FirstId(tt.findId)
|
||||
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, tt.skill.Name, s.Name)
|
||||
assert.Equal(t, "midgard", s.GameSystem)
|
||||
assert.Equal(t, tt.findId, s.ID)
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_Save(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
skill *gsmaster.Skill
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "update existing skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Skill",
|
||||
Beschreibung: "Original Description",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
/*{
|
||||
name: "nil skill",
|
||||
skill: nil,
|
||||
wantErr: true,
|
||||
},*/
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if !tt.wantErr {
|
||||
// Create initial record
|
||||
err := tt.skill.Create()
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Modify the skill
|
||||
tt.skill.Beschreibung = "Updated Description"
|
||||
}
|
||||
|
||||
if tt.skill != nil {
|
||||
err := tt.skill.Save()
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Verify the update
|
||||
saved := &gsmaster.Skill{}
|
||||
err = saved.FirstId(tt.skill.ID)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "Updated Description", saved.Beschreibung)
|
||||
}
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_Delete(t *testing.T) {
|
||||
SetupTestDB()
|
||||
tests := []struct {
|
||||
name string
|
||||
skill *gsmaster.Skill
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "delete existing skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Test Skill",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "delete non-existing skill",
|
||||
skill: &gsmaster.Skill{
|
||||
LookupList: gsmaster.LookupList{
|
||||
ID: 9999,
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
/*{
|
||||
name: "delete nil skill",
|
||||
skill: nil,
|
||||
wantErr: true,
|
||||
},*/
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
if !tt.wantErr && tt.skill != nil {
|
||||
// Create test data first
|
||||
err := tt.skill.Create()
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
var err error
|
||||
if tt.skill != nil {
|
||||
err = tt.skill.Delete()
|
||||
}
|
||||
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Verify deletion
|
||||
s := &gsmaster.Skill{}
|
||||
err = s.FirstId(tt.skill.ID)
|
||||
assert.Error(t, err) // Should error since record is deleted
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
|
||||
func TestSkill_GetSkillCategories(t *testing.T) {
|
||||
SetupTestDB()
|
||||
// Create test skills with different categories
|
||||
testSkills := []*gsmaster.Skill{
|
||||
{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Skill1",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
Category: "Category1",
|
||||
},
|
||||
{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Skill2",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
Category: "Category2",
|
||||
},
|
||||
{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Skill3",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
Category: "Category1", // Duplicate category
|
||||
},
|
||||
{
|
||||
LookupList: gsmaster.LookupList{
|
||||
Name: "Skill4",
|
||||
GameSystem: "midgard",
|
||||
},
|
||||
Category: "", // Empty category
|
||||
},
|
||||
}
|
||||
|
||||
// Create test data
|
||||
for _, skill := range testSkills {
|
||||
err := skill.Create()
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
name string
|
||||
expectedCount int
|
||||
expectedFound []string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "get categories",
|
||||
expectedCount: 3,
|
||||
expectedFound: []string{"Category1", "Category2", ""},
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
s := &gsmaster.Skill{}
|
||||
categories, err := s.GetSkillCategories()
|
||||
|
||||
if tt.wantErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, categories, tt.expectedCount)
|
||||
assert.ElementsMatch(t, tt.expectedFound, categories)
|
||||
})
|
||||
}
|
||||
resetDB()
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"bamort/gsmaster"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// GenerateFilename generates a filename based on the prefix and the current date/time
|
||||
func generateFilename(prefix string, extension string) string {
|
||||
// Get the current date and time
|
||||
now := time.Now()
|
||||
|
||||
// Format the date and time as "YYYY-MM-DD_HH-MM-SS"
|
||||
//timestamp = now.Format("2006-01-02_15-04-05")
|
||||
timestamp := now.Format("20060102_150405")
|
||||
|
||||
// Combine the prefix and the timestamp to form the filename
|
||||
return fmt.Sprintf("%s_%s.%s", prefix, timestamp, extension)
|
||||
}
|
||||
|
||||
func TestExportGSMasterdata(t *testing.T) {
|
||||
SetupTestDB()
|
||||
TestImportSkill2GSMaster(t)
|
||||
TestImportWeaponSkill2GSMaster(t)
|
||||
TestImportSpell2GSMaster(t)
|
||||
TestImportWeapon2GSMaster(t)
|
||||
TestImportContainer2GSMaster(t)
|
||||
TestImportTransportation2GSMaster(t)
|
||||
TestImportEquipment2GSMaster(t)
|
||||
TestImportBelieve2GSMaster(t)
|
||||
err := gsmaster.Export(generateFilename("../testdata/gsmaster_", "json"))
|
||||
assert.NoError(t, err, "expexted no Error during Export if gsmaster data")
|
||||
}
|
||||
|
||||
func TestImportGSMasterdata(t *testing.T) {
|
||||
SetupTestDB()
|
||||
err := gsmaster.Import("../testdata/gsmaster_exported_gsdata.json")
|
||||
assert.NoError(t, err, "expexted no Error during Export if gsmaster data")
|
||||
}
|
||||
|
||||
func TestMigrateStructure(t *testing.T) {
|
||||
SetupTestDB()
|
||||
err := gsmaster.MigrateStructure()
|
||||
assert.NoError(t, err, "expexted no Error during MigrateStructure")
|
||||
}
|
||||
@@ -15,17 +15,18 @@ import (
|
||||
)
|
||||
|
||||
var migrationDone bool
|
||||
var isTestDb bool
|
||||
|
||||
// SetupTestDB creates an in-memory SQLite database for testing
|
||||
func SetupTestDB(opts ...bool) {
|
||||
useTestDB := true
|
||||
isTestDb = true
|
||||
if len(opts) > 0 {
|
||||
useTestDB = opts[0]
|
||||
isTestDb = opts[0]
|
||||
}
|
||||
if database.DB == nil {
|
||||
var db *gorm.DB
|
||||
var err error
|
||||
if useTestDB {
|
||||
if isTestDb {
|
||||
//*
|
||||
db, err = gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
if err != nil {
|
||||
@@ -49,6 +50,18 @@ func SetupTestDB(opts ...bool) {
|
||||
if err != nil {
|
||||
panic("failed to MigrateStructure")
|
||||
}
|
||||
migrationDone = true
|
||||
}
|
||||
}
|
||||
|
||||
func resetDB() {
|
||||
if isTestDb {
|
||||
sqlDB, err := database.DB.DB()
|
||||
if err == nil {
|
||||
sqlDB.Close()
|
||||
database.DB = nil
|
||||
migrationDone = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"bamort/gsmaster"
|
||||
"fmt"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// GenerateFilename generates a filename based on the prefix and the current date/time
|
||||
func generateFilename(prefix string, extension string) string {
|
||||
// Get the current date and time
|
||||
now := time.Now()
|
||||
|
||||
// Format the date and time as "YYYY-MM-DD_HH-MM-SS"
|
||||
//timestamp = now.Format("2006-01-02_15-04-05")
|
||||
timestamp := now.Format("20060102_150405")
|
||||
|
||||
// Combine the prefix and the timestamp to form the filename
|
||||
return fmt.Sprintf("%s_%s.%s", prefix, timestamp, extension)
|
||||
}
|
||||
|
||||
/*
|
||||
func TestCreateLookupSkill(t *testing.T) {
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.Skill{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Lesen"
|
||||
stamm.Beschreibung = "Lesen und Schreiben"
|
||||
stamm.Quelle = "kod-4711"
|
||||
stamm.Initialkeitswert = 8
|
||||
stamm.Bonuseigenschaft = "In"
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
}
|
||||
|
||||
func TestFindLookupSkill(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupSkill(t)
|
||||
stamm := gsmaster.Skill{}
|
||||
stamm.Name = "Lesen"
|
||||
|
||||
err := stamm.First("Lesen")
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, "In", stamm.Bonuseigenschaft)
|
||||
}
|
||||
|
||||
func TestCreateLookupWeaponSkill(t *testing.T) {
|
||||
// Setup test database
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.WeaponSkill{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Stichwaffen"
|
||||
stamm.Beschreibung = "Für Dolche und Ochsenzungen"
|
||||
stamm.Quelle = "kod-4712"
|
||||
stamm.Initialkeitswert = 5
|
||||
stamm.Bonuseigenschaft = "Gs"
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in WaffenFertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
}
|
||||
|
||||
func TestFindLookupWeaponSkill(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupWeaponSkill(t)
|
||||
stamm := gsmaster.WeaponSkill{}
|
||||
stamm.Name = "Lesen"
|
||||
|
||||
err := stamm.First("Stichwaffen")
|
||||
assert.NoError(t, err, "expexted Error does not exist in WaffenFertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, "Stichwaffen", stamm.Name)
|
||||
assert.Equal(t, "Für Dolche und Ochsenzungen", stamm.Beschreibung)
|
||||
assert.Equal(t, "Gs", stamm.Bonuseigenschaft)
|
||||
}
|
||||
|
||||
func TestCreateLookupSpell(t *testing.T) {
|
||||
// Setup test database
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.Spell{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Unsichtbarkeit"
|
||||
stamm.Beschreibung = "werde unsichtbar"
|
||||
stamm.Quelle = "Ark-4711"
|
||||
stamm.Stufe = 1
|
||||
stamm.AP = 1
|
||||
stamm.Reichweite = 0
|
||||
stamm.Wirkungsziel = "Zauberer"
|
||||
stamm.Bonus = 0
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, "Unsichtbarkeit", stamm.Name)
|
||||
assert.Equal(t, "werde unsichtbar", stamm.Beschreibung)
|
||||
assert.Equal(t, 1, stamm.Stufe)
|
||||
}
|
||||
|
||||
func TestFindLookupSpell(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupSpell(t)
|
||||
stamm := gsmaster.Spell{}
|
||||
stamm.Name = "lesen"
|
||||
|
||||
err := stamm.First("Unsichtbarkeit")
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, "Unsichtbarkeit", stamm.Name)
|
||||
assert.Equal(t, "werde unsichtbar", stamm.Beschreibung)
|
||||
assert.Equal(t, 1, stamm.AP)
|
||||
assert.Equal(t, 0, stamm.Reichweite)
|
||||
assert.Equal(t, "Zauberer", stamm.Wirkungsziel)
|
||||
assert.Equal(t, 0, stamm.Bonus)
|
||||
}
|
||||
|
||||
func TestCreateLookupEquipment(t *testing.T) {
|
||||
// Setup test database
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.Equipment{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Decke"
|
||||
stamm.Beschreibung = "zum zudecken"
|
||||
stamm.Quelle = "kod-4713"
|
||||
stamm.Gewicht = 0.2
|
||||
stamm.Wert = 300
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
}
|
||||
|
||||
func TestFindLookupEquipment(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupEquipment(t)
|
||||
stamm := gsmaster.Equipment{}
|
||||
stamm.Name = "Lesen"
|
||||
|
||||
err := stamm.First("Decke")
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, 0.2, stamm.Gewicht)
|
||||
}
|
||||
|
||||
func TestCreateLookupContainer(t *testing.T) {
|
||||
// Setup test database
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.Container{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Topf"
|
||||
stamm.Beschreibung = "zum kochen"
|
||||
stamm.Quelle = "kod-4714"
|
||||
stamm.Gewicht = 0.6
|
||||
stamm.Wert = 300
|
||||
stamm.Volumen = 12.2
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
}
|
||||
|
||||
func TestFindLookupContainer(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupContainer(t)
|
||||
stamm := gsmaster.Container{}
|
||||
stamm.Name = "Lesen"
|
||||
|
||||
err := stamm.First("Topf")
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, 0.6, stamm.Gewicht)
|
||||
assert.Equal(t, 12.2, stamm.Volumen)
|
||||
}
|
||||
|
||||
func TestCreateLookupTransportation(t *testing.T) {
|
||||
// Setup test database
|
||||
SetupTestDB()
|
||||
stamm := gsmaster.Transportation{}
|
||||
stamm.System = "Midgard"
|
||||
stamm.Name = "Topf"
|
||||
stamm.Beschreibung = "zum kochen"
|
||||
stamm.Quelle = "kod-4714"
|
||||
stamm.Gewicht = 0.6
|
||||
stamm.Wert = 300
|
||||
stamm.Volumen = 12.5
|
||||
err := stamm.Create()
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
}
|
||||
|
||||
func TestFindLookupTransportation(t *testing.T) {
|
||||
// Setup test database
|
||||
TestCreateLookupTransportation(t)
|
||||
stamm := gsmaster.Transportation{}
|
||||
stamm.Name = "Lesen"
|
||||
|
||||
err := stamm.First("Topf")
|
||||
assert.NoError(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
assert.GreaterOrEqual(t, 1, int(stamm.ID), "exepets an ID to be present")
|
||||
assert.Equal(t, "midgard", stamm.System)
|
||||
assert.Equal(t, 0.6, stamm.Gewicht)
|
||||
assert.Equal(t, 12.5, stamm.Volumen)
|
||||
}
|
||||
*/
|
||||
|
||||
func TestExportGSMasterdata(t *testing.T) {
|
||||
SetupTestDB()
|
||||
TestImportSkill2GSMaster(t)
|
||||
TestImportWeaponSkill2GSMaster(t)
|
||||
TestImportSpell2GSMaster(t)
|
||||
TestImportWeapon2GSMaster(t)
|
||||
TestImportContainer2GSMaster(t)
|
||||
TestImportTransportation2GSMaster(t)
|
||||
TestImportEquipment2GSMaster(t)
|
||||
TestImportBelieve2GSMaster(t)
|
||||
err := gsmaster.Export(generateFilename("../testdata/gsmaster_", "json"))
|
||||
assert.NoError(t, err, "expexted no Error during Export if gsmaster data")
|
||||
}
|
||||
|
||||
func TestImportGSMasterdata(t *testing.T) {
|
||||
SetupTestDB()
|
||||
err := gsmaster.Import("../testdata/gsmaster_exported_gsdata.json")
|
||||
assert.NoError(t, err, "expexted no Error during Export if gsmaster data")
|
||||
}
|
||||
Reference in New Issue
Block a user