step by stepp adding fields to char
This commit is contained in:
+120
-85
@@ -2,7 +2,10 @@ package models
|
||||
|
||||
import (
|
||||
"bamort/database"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
@@ -15,9 +18,11 @@ type User struct {
|
||||
}
|
||||
|
||||
type BamortBase struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
Name string `json:"name"`
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
Name string `json:"name"`
|
||||
System string `json:"gamingsystem"`
|
||||
}
|
||||
|
||||
type BamortCharTrait struct {
|
||||
BamortBase
|
||||
CharacterID uint `gorm:"index" json:"character_id"`
|
||||
@@ -32,31 +37,33 @@ type BamortCharTraitMaxVal struct {
|
||||
type Char struct {
|
||||
BamortBase
|
||||
|
||||
Rasse string `json:"rasse"`
|
||||
Typ string `json:"typ"`
|
||||
Alter int `json:"alter"`
|
||||
Anrede string `json:"anrede"`
|
||||
Grad int `json:"grad"`
|
||||
Groesse int `json:"groesse"`
|
||||
Gewicht int `json:"gewicht"`
|
||||
Glaube string `json:"glaube"`
|
||||
Hand string `json:"hand"`
|
||||
Lp Lp `gorm:"foreignKey:CharacterID" json:"lp"`
|
||||
Ap Ap `gorm:"foreignKey:CharacterID" json:"ap"`
|
||||
B B `gorm:"foreignKey:CharacterID" json:"b"`
|
||||
Merkmale Merkmale `gorm:"foreignKey:CharacterID" json:"merkmale"`
|
||||
Fertigkeiten []Fertigkeit `gorm:"foreignKey:CharacterID" json:"fertigkeiten"`
|
||||
Zauber []Zauber `gorm:"foreignKey:CharacterID" json:"zauber"`
|
||||
Eigenschaften []Eigenschaft `gorm:"foreignKey:CharacterID" json:"eigenschaften"`
|
||||
Transportmittel []Transportation `gorm:"foreignKey:CharacterID" json:"transportmittel"`
|
||||
Ausruestung []Ausruestung `gorm:"foreignKey:CharacterID" json:"ausruestung"`
|
||||
Behaeltnisse []Behaeltniss `gorm:"foreignKey:CharacterID" json:"behaeltnisse"`
|
||||
Waffen []Waffe `gorm:"foreignKey:CharacterID" json:"waffen"`
|
||||
Waffenfertigkeiten []Waffenfertigkeit `gorm:"foreignKey:CharacterID" json:"waffenfertigkeiten"`
|
||||
Spezialisierung database.StringArray `gorm:"type:TEXT" json:"spezialisierung"`
|
||||
Bennies Bennies `gorm:"foreignKey:CharacterID" json:"bennies"`
|
||||
Erfahrungsschatz Erfahrungsschatz `gorm:"foreignKey:CharacterID" json:"erfahrungsschatz"`
|
||||
Image string `json:"image,omitempty"`
|
||||
Rasse string `json:"rasse"`
|
||||
Typ string `json:"typ"`
|
||||
Alter int `json:"alter"`
|
||||
Anrede string `json:"anrede"`
|
||||
Grad int `json:"grad"`
|
||||
Groesse int `json:"groesse"`
|
||||
Gewicht int `json:"gewicht"`
|
||||
Glaube string `json:"glaube"`
|
||||
Hand string `json:"hand"`
|
||||
Lp Lp `gorm:"foreignKey:CharacterID" json:"lp"`
|
||||
Ap Ap `gorm:"foreignKey:CharacterID" json:"ap"`
|
||||
B B `gorm:"foreignKey:CharacterID" json:"b"`
|
||||
Merkmale Merkmale `gorm:"foreignKey:CharacterID" json:"merkmale"`
|
||||
Eigenschaften []Eigenschaft `gorm:"foreignKey:CharacterID" json:"eigenschaften"`
|
||||
Fertigkeiten []Fertigkeit `gorm:"foreignKey:CharacterID" json:"fertigkeiten"`
|
||||
Zauber []Zauber `gorm:"foreignKey:CharacterID" json:"zauber"`
|
||||
/*
|
||||
Transportmittel []Transportation `gorm:"foreignKey:CharacterID" json:"transportmittel"`
|
||||
Ausruestung []Ausruestung `gorm:"foreignKey:CharacterID" json:"ausruestung"`
|
||||
Behaeltnisse []Behaeltniss `gorm:"foreignKey:CharacterID" json:"behaeltnisse"`
|
||||
Waffen []Waffe `gorm:"foreignKey:CharacterID" json:"waffen"`
|
||||
Waffenfertigkeiten []Waffenfertigkeit `gorm:"foreignKey:CharacterID" json:"waffenfertigkeiten"`
|
||||
Spezialisierung database.StringArray `gorm:"type:TEXT" json:"spezialisierung"`
|
||||
Bennies Bennies `gorm:"foreignKey:CharacterID" json:"bennies"`
|
||||
Erfahrungsschatz Erfahrungsschatz `gorm:"foreignKey:CharacterID" json:"erfahrungsschatz"`
|
||||
Image string `json:"image,omitempty"`
|
||||
*/
|
||||
}
|
||||
|
||||
// Au, Gs, Gw ,In, Ko, Pa, St, Wk, Zt
|
||||
@@ -70,14 +77,14 @@ type Ausruestung struct {
|
||||
BamortCharTrait
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
|
||||
Name string `json:"name"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
Anzahl int `json:"anzahl"`
|
||||
BeinhaltetIn *string `json:"beinhaltet_in"`
|
||||
Bonus int `json:"bonus,omitempty"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch MagischAusruestung `gorm:"foreignKey:AusruestungID" json:"magisch"`
|
||||
Wert float64 `json:"wert"`
|
||||
Name string `json:"name"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
Anzahl int `json:"anzahl"`
|
||||
BeinhaltetIn *string `json:"beinhaltet_in"`
|
||||
Bonus int `json:"bonus,omitempty"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch Magisch `json:"magisch"`
|
||||
Wert float64 `json:"wert"`
|
||||
}
|
||||
|
||||
type Fertigkeit struct {
|
||||
@@ -95,9 +102,6 @@ type Waffenfertigkeit struct {
|
||||
|
||||
type Zauber struct {
|
||||
BamortCharTrait
|
||||
ID uint `gorm:"primaryKey"`
|
||||
|
||||
Name string `json:"name"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
Bonus int `json:"bonus"`
|
||||
Quelle string `json:"quelle"`
|
||||
@@ -107,17 +111,17 @@ type Waffe struct {
|
||||
BamortCharTrait
|
||||
ID uint `gorm:"primaryKey" json:"dbid"`
|
||||
|
||||
Name string `json:"name"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
Abwb int `json:"abwb"`
|
||||
Anb int `json:"anb"`
|
||||
Anzahl int `json:"anzahl"`
|
||||
BeinhaltetIn *string `json:"beinhaltet_in"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch MagischWaffe `gorm:"foreignKey:WaffenID" json:"magisch"`
|
||||
NameFuerSpezialisierung string `json:"nameFuerSpezialisierung"`
|
||||
Schb int `json:"schb"`
|
||||
Wert float64 `json:"wert"`
|
||||
Name string `json:"name"`
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
Abwb int `json:"abwb"`
|
||||
Anb int `json:"anb"`
|
||||
Anzahl int `json:"anzahl"`
|
||||
BeinhaltetIn *string `json:"beinhaltet_in"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch Magisch `json:"magisch"`
|
||||
NameFuerSpezialisierung string `json:"nameFuerSpezialisierung"`
|
||||
Schb int `json:"schb"`
|
||||
Wert float64 `json:"wert"`
|
||||
}
|
||||
|
||||
type Merkmale struct {
|
||||
@@ -161,11 +165,11 @@ type Behaeltniss struct {
|
||||
BamortCharTrait
|
||||
Beschreibung string `json:"beschreibung"`
|
||||
//BeinhaltetIn any `json:"beinhaltet_in"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch MagischBehaelter `gorm:"foreignKey:BehaeltnissID" json:"magisch"`
|
||||
Wert float64 `json:"wert"`
|
||||
Tragkraft float64 `json:"tragkraft"`
|
||||
Volumen float64 `json:"volumen"`
|
||||
Gewicht float64 `json:"gewicht"`
|
||||
Magisch Magisch ` json:"magisch"`
|
||||
Wert float64 `json:"wert"`
|
||||
Tragkraft float64 `json:"tragkraft"`
|
||||
Volumen float64 `json:"volumen"`
|
||||
}
|
||||
|
||||
type Transportation struct {
|
||||
@@ -173,42 +177,73 @@ type Transportation struct {
|
||||
//Magisch Magisch `gorm:"polymorphic:Item;polymorphicValue:Transportmittel" json:"magisch"`
|
||||
}
|
||||
|
||||
type MagischAusruestung struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
AusruestungID int `gorm:"index" json:"ausruestung_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
/*
|
||||
type MagischAusruestung struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
AusruestungID int `gorm:"index" json:"ausruestung_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
|
||||
type MagischWaffe struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
WaffenID int `gorm:"index" json:"waffen_id"`
|
||||
type MagischWaffe struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
WaffenID int `gorm:"index" json:"waffen_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
|
||||
type MagischBehaelter struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
BehaeltnissID int `gorm:"index" json:"behaeltniss_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
|
||||
type MagischTransport struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
TransportationID int `gorm:"index" json:"transportation_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
*/
|
||||
type Magisch struct {
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
}
|
||||
|
||||
type MagischBehaelter struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
BehaeltnissID int `gorm:"index" json:"behaeltniss_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
func (object *Char) First(name string) error {
|
||||
gameSystem := "midgard"
|
||||
err := database.DB.First(&object, "system=? AND name = ?", gameSystem, name).Error
|
||||
if err != nil {
|
||||
// zauber found
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type MagischTransport struct {
|
||||
ID uint `gorm:"primaryKey" json:"id"`
|
||||
//ItemType string `gorm:"index" json:"item_type"` // Type of the referenced item (e.g., "Ausruestung")
|
||||
//ItemID uint `gorm:"index" json:"item_id"` // ID of the referenced item
|
||||
TransportationID int `gorm:"index" json:"transportation_id"`
|
||||
Abw int `json:"abw"`
|
||||
Ausgebrannt bool `json:"ausgebrannt"`
|
||||
IstMagisch bool `json:"ist_magisch"`
|
||||
func (object *Char) Create() error {
|
||||
gameSystem := "midgard"
|
||||
object.System = gameSystem
|
||||
err := database.DB.Transaction(func(tx *gorm.DB) error {
|
||||
// Save the main character record
|
||||
if err := tx.Create(&object).Error; err != nil {
|
||||
return fmt.Errorf("failed to save Lookup: %w", err)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -0,0 +1,403 @@
|
||||
package tests
|
||||
|
||||
import (
|
||||
"bamort/database"
|
||||
"bamort/models"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func initTestDB4Character() *gorm.DB {
|
||||
db := SetupTestDB()
|
||||
db.AutoMigrate(
|
||||
&models.Char{},
|
||||
&models.Lp{},
|
||||
&models.Ap{},
|
||||
&models.B{},
|
||||
&models.Merkmale{},
|
||||
&models.Eigenschaft{},
|
||||
&models.Fertigkeit{},
|
||||
&models.Zauber{},
|
||||
/*
|
||||
&models.ImAusruestung{},
|
||||
&models.ImWaffenfertigkeit{},
|
||||
&models.ImWaffe{},
|
||||
&models.ImGestalt{},
|
||||
&models.ImErfahrungsschatz{},
|
||||
&models.ImEigenschaften{},
|
||||
&models.ImBennies{},
|
||||
&models.ImBehaeltniss{},
|
||||
&models.ImTransportation{},
|
||||
&models.ImMagisch{},
|
||||
&models.ImCharacterImport{},
|
||||
&models.LookupSkill{}, //needed for stammdaten.CheckFertigkeit
|
||||
&models.LookupSpell{}, //needed for stammdaten.CheckZauber
|
||||
*/
|
||||
)
|
||||
return db
|
||||
}
|
||||
|
||||
func TestCreateChar(t *testing.T) {
|
||||
// Setup test database
|
||||
testDB := initTestDB4Character()
|
||||
database.DB = testDB // Assign test DB to global DB
|
||||
|
||||
char := models.Char{}
|
||||
char.System = "Midgard"
|
||||
char.Name = "Harsk Hammerhuter, Zen"
|
||||
char.Rasse = "Zwerg"
|
||||
char.Typ = "Krieger"
|
||||
char.Alter = 39
|
||||
char.Anrede = "er"
|
||||
char.Grad = 3
|
||||
char.Groesse = 140
|
||||
char.Gewicht = 82
|
||||
char.Glaube = "Torkin"
|
||||
char.Hand = "rechts"
|
||||
char.Ap.Max = 31
|
||||
char.Ap.Value = 31
|
||||
char.Lp.Max = 17
|
||||
char.Lp.Value = 17
|
||||
char.B.Max = 18
|
||||
char.B.Value = 18
|
||||
char.Merkmale.Augenfarbe = "blau"
|
||||
char.Merkmale.Haarfarbe = "sandfarben"
|
||||
char.Merkmale.Sonstige = ""
|
||||
char.Eigenschaften = []models.Eigenschaft{
|
||||
{Name: "Au", Value: 74},
|
||||
{Name: "Gs", Value: 96},
|
||||
{Name: "Gw", Value: 70},
|
||||
{Name: "In", Value: 65},
|
||||
{Name: "Ko", Value: 85},
|
||||
{Name: "PA", Value: 75},
|
||||
{Name: "St", Value: 95},
|
||||
{Name: "Wk", Value: 71},
|
||||
{Name: "Zt", Value: 35},
|
||||
}
|
||||
char.Fertigkeiten = []models.Fertigkeit{
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: "Hören", System: "Midgard",
|
||||
},
|
||||
},
|
||||
Beschreibung: "xx",
|
||||
Fertigkeitswert: 6,
|
||||
Bonus: 0,
|
||||
Pp: 0,
|
||||
Bemerkung: "",
|
||||
},
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: "Sprache", System: "Midgard",
|
||||
},
|
||||
},
|
||||
Beschreibung: "Albisch",
|
||||
Fertigkeitswert: 8,
|
||||
Bonus: 0,
|
||||
Pp: 0,
|
||||
Bemerkung: "",
|
||||
},
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: "Sprache", System: "Midgard",
|
||||
},
|
||||
},
|
||||
Beschreibung: "Comentang",
|
||||
Fertigkeitswert: 12,
|
||||
Bonus: 0,
|
||||
Pp: 0,
|
||||
Bemerkung: "",
|
||||
},
|
||||
}
|
||||
char.Zauber = []models.Zauber{
|
||||
{
|
||||
BamortCharTrait: models.BamortCharTrait{
|
||||
BamortBase: models.BamortBase{
|
||||
Name: "Angst", System: "Midgard",
|
||||
},
|
||||
},
|
||||
Beschreibung: "",
|
||||
Bonus: 0,
|
||||
},
|
||||
}
|
||||
/*
|
||||
char.Zauber=""
|
||||
char.Eigenschaften=""
|
||||
char.Transportmittel=""
|
||||
char.Ausruestung=""
|
||||
char.Behaeltnisse=""
|
||||
char.Waffen=""
|
||||
char.Waffenfertigkeiten=""
|
||||
char.Spezialisierung:=database.StringArray{"Kriegshammer", "Armbrust:schwer", "Stielhammer"}
|
||||
char.Bennies=""
|
||||
char.Erfahrungsschatz="325"
|
||||
char.Image=""
|
||||
*/
|
||||
err := char.First(char.Name)
|
||||
assert.Error(t, err, "expected error characvter not found")
|
||||
if err != nil {
|
||||
err = char.Create()
|
||||
assert.NoError(t, err, "expected no error creating the char")
|
||||
|
||||
}
|
||||
assert.LessOrEqual(t, 0, int(char.ID))
|
||||
assert.Equal(t, "Harsk Hammerhuter, Zen", char.Name)
|
||||
assert.Equal(t, "Zwerg", char.Rasse)
|
||||
assert.Equal(t, "Krieger", char.Typ)
|
||||
assert.Equal(t, 39, char.Alter)
|
||||
assert.Equal(t, "er", char.Anrede)
|
||||
assert.Equal(t, 3, char.Grad)
|
||||
assert.Equal(t, 140, char.Groesse)
|
||||
assert.Equal(t, 82, char.Gewicht)
|
||||
assert.Equal(t, "Torkin", char.Glaube)
|
||||
assert.Equal(t, "rechts", char.Hand)
|
||||
assert.Equal(t, 31, char.Ap.Max)
|
||||
assert.Equal(t, 31, char.Ap.Value)
|
||||
assert.Equal(t, 17, char.Lp.Max)
|
||||
assert.Equal(t, 17, char.Lp.Value)
|
||||
assert.Equal(t, 18, char.B.Max)
|
||||
assert.Equal(t, 18, char.B.Value)
|
||||
assert.Equal(t, "blau", char.Merkmale.Augenfarbe)
|
||||
assert.Equal(t, "sandfarben", char.Merkmale.Haarfarbe)
|
||||
assert.Equal(t, "", char.Merkmale.Sonstige)
|
||||
i := 0
|
||||
assert.Equal(t, "Au", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 74, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "Gs", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 96, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "Gw", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 70, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "In", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 65, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "Ko", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 85, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "PA", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 75, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "St", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 95, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "Wk", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 71, char.Eigenschaften[i].Value)
|
||||
i++
|
||||
assert.Equal(t, "Zt", char.Eigenschaften[i].Name)
|
||||
assert.Equal(t, 35, char.Eigenschaften[i].Value)
|
||||
i = 0
|
||||
assert.LessOrEqual(t, 3, len(char.Fertigkeiten))
|
||||
assert.LessOrEqual(t, i+1, int(char.Fertigkeiten[i].ID))
|
||||
assert.Equal(t, "Hören", char.Fertigkeiten[i].Name)
|
||||
assert.Equal(t, "Midgard", char.Fertigkeiten[i].System)
|
||||
assert.Equal(t, "xx", char.Fertigkeiten[i].Beschreibung)
|
||||
assert.Equal(t, 6, char.Fertigkeiten[i].Fertigkeitswert)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Bonus)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Pp)
|
||||
assert.Equal(t, "", char.Fertigkeiten[i].Bemerkung)
|
||||
assert.LessOrEqual(t, 0, int(char.Fertigkeiten[i].CharacterID))
|
||||
i++
|
||||
assert.LessOrEqual(t, i+1, int(char.Fertigkeiten[i].ID))
|
||||
assert.Equal(t, "Sprache", char.Fertigkeiten[i].Name)
|
||||
assert.Equal(t, "Midgard", char.Fertigkeiten[i].System)
|
||||
assert.Equal(t, "Albisch", char.Fertigkeiten[i].Beschreibung)
|
||||
assert.Equal(t, 8, char.Fertigkeiten[i].Fertigkeitswert)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Bonus)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Pp)
|
||||
assert.Equal(t, "", char.Fertigkeiten[i].Bemerkung)
|
||||
assert.LessOrEqual(t, 1, int(char.Fertigkeiten[i].CharacterID))
|
||||
i++
|
||||
assert.LessOrEqual(t, i+1, int(char.Fertigkeiten[i].ID))
|
||||
assert.Equal(t, "Sprache", char.Fertigkeiten[i].Name)
|
||||
assert.Equal(t, "Midgard", char.Fertigkeiten[i].System)
|
||||
assert.Equal(t, "Comentang", char.Fertigkeiten[i].Beschreibung)
|
||||
assert.Equal(t, 12, char.Fertigkeiten[i].Fertigkeitswert)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Bonus)
|
||||
assert.Equal(t, 0, char.Fertigkeiten[i].Pp)
|
||||
assert.Equal(t, "", char.Fertigkeiten[i].Bemerkung)
|
||||
assert.LessOrEqual(t, 1, int(char.Fertigkeiten[i].CharacterID))
|
||||
i = 0
|
||||
assert.LessOrEqual(t, 1, len(char.Zauber))
|
||||
assert.LessOrEqual(t, i+1, int(char.Zauber[i].ID))
|
||||
assert.Equal(t, "Angst", char.Zauber[i].Name)
|
||||
assert.Equal(t, "Midgard", char.Zauber[i].System)
|
||||
assert.Equal(t, "", char.Zauber[i].Beschreibung)
|
||||
assert.Equal(t, 0, char.Zauber[i].Bonus)
|
||||
assert.LessOrEqual(t, 0, int(char.Zauber[i].CharacterID))
|
||||
|
||||
/*
|
||||
|
||||
// loading file to Modell
|
||||
fileName := fmt.Sprintf("../testdata/%s", "VTT_Import1.json")
|
||||
assert.Equal(t, "../testdata/VTT_Import1.json", fileName)
|
||||
fileContent, err := os.ReadFile(fileName)
|
||||
assert.NoError(t, err, "Expected no error when reading file "+fileName)
|
||||
character := models.ImCharacterImport{}
|
||||
err = json.Unmarshal(fileContent, &character)
|
||||
assert.NoError(t, err, "Expected no error when Unmarshal filecontent")
|
||||
|
||||
//checke Fertigkeit auf vorhandensein in den Stammdaten
|
||||
fertigkeit := character.Fertigkeiten[1]
|
||||
stammF, err := stammdaten.CheckSkill(&fertigkeit, false)
|
||||
assert.Error(t, err, "expexted Error does not exist in Fertigkeit Stammdaten")
|
||||
if stammF == nil && err != nil {
|
||||
stammF, err = stammdaten.CheckSkill(&fertigkeit, true)
|
||||
}
|
||||
assert.NoError(t, err, "Expected to finds the Fertigkeit Stammdaten in the database")
|
||||
assert.Equal(t, fertigkeit.Name, stammF.Name)
|
||||
assert.Equal(t, fertigkeit.Beschreibung, stammF.Beschreibung)
|
||||
assert.Equal(t, fertigkeit.Quelle, stammF.Quelle)
|
||||
assert.Equal(t, 5, stammF.Initialkeitswert)
|
||||
assert.Equal(t, "keine", stammF.Bonuseigenschaft)
|
||||
assert.Equal(t, "midgard", stammF.System)
|
||||
assert.Equal(t, 1, int(stammF.ID))
|
||||
|
||||
// und noch mal
|
||||
//checke Fertigkeit auf vorhandensein in den Stammdaten
|
||||
//fertigkeit := character.Fertigkeiten[1]
|
||||
stammF, err = stammdaten.CheckSkill(&fertigkeit, false)
|
||||
assert.NoError(t, err, "expexted no Error exist in Fertigkeit Stammdaten")
|
||||
if stammF == nil && err != nil {
|
||||
stammF, err = stammdaten.CheckSkill(&fertigkeit, true)
|
||||
}
|
||||
assert.NoError(t, err, "Expected to finds the Fertigkeit Stammdaten in the database")
|
||||
assert.Equal(t, fertigkeit.Name, stammF.Name)
|
||||
assert.Equal(t, fertigkeit.Beschreibung, stammF.Beschreibung)
|
||||
assert.Equal(t, fertigkeit.Quelle, stammF.Quelle)
|
||||
assert.Equal(t, 5, stammF.Initialkeitswert)
|
||||
assert.Equal(t, "keine", stammF.Bonuseigenschaft)
|
||||
assert.Equal(t, "midgard", stammF.System)
|
||||
assert.Equal(t, 1, int(stammF.ID))
|
||||
*/
|
||||
}
|
||||
|
||||
func TestReadChar(t *testing.T) {
|
||||
// Setup test database
|
||||
testDB := initTestDB4Character()
|
||||
database.DB = testDB // Assign test DB to global DB
|
||||
|
||||
/*
|
||||
// loading file to Modell
|
||||
fileName := fmt.Sprintf("../testdata/%s", "VTT_Import1.json")
|
||||
assert.Equal(t, "../testdata/VTT_Import1.json", fileName)
|
||||
fileContent, err := os.ReadFile(fileName)
|
||||
assert.NoError(t, err, "Expected no error when reading file "+fileName)
|
||||
character := models.ImCharacterImport{}
|
||||
err = json.Unmarshal(fileContent, &character)
|
||||
assert.NoError(t, err, "Expected no error when Unmarshal filecontent")
|
||||
|
||||
//for index, fertigkeit := range character.Fertigkeiten {
|
||||
for _, fertigkeit := range character.Fertigkeiten {
|
||||
fmt.Println(fertigkeit.Name)
|
||||
stammF, err := stammdaten.CheckSkill(&fertigkeit, true)
|
||||
assert.NoError(t, err, "Expected to finds the Fertigkeit Stammdaten in the database")
|
||||
assert.Equal(t, fertigkeit.Name, stammF.Name, "Name should be equal")
|
||||
if fertigkeit.Name != "Sprache" {
|
||||
assert.Equal(t, fertigkeit.Beschreibung, stammF.Beschreibung, "Beschreibung should be equal")
|
||||
} else {
|
||||
assert.Equal(t, "", stammF.Beschreibung, "Beschreibung should be equal")
|
||||
}
|
||||
assert.Equal(t, fertigkeit.Quelle, stammF.Quelle, "Quelle should be equal")
|
||||
//assert.Equal(t, 5, stammF.Initialkeitswert, "Initialkeitswert should be equal")
|
||||
assert.Equal(t, "keine", stammF.Bonuseigenschaft, "Bonuseigenschaft should be equal")
|
||||
assert.Equal(t, "midgard", stammF.System, "System should be equal")
|
||||
//assert.NotEmpty(t, index+1, int(stammF.ID), "ID should be equal")
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
func TestAddSkill(t *testing.T) {
|
||||
// Setup test database
|
||||
testDB := initTestDB4Character()
|
||||
database.DB = testDB // Assign test DB to global DB
|
||||
/*
|
||||
|
||||
// loading file to Modell
|
||||
fileName := fmt.Sprintf("../testdata/%s", "VTT_Import1.json")
|
||||
assert.Equal(t, "../testdata/VTT_Import1.json", fileName)
|
||||
fileContent, err := os.ReadFile(fileName)
|
||||
assert.NoError(t, err, "Expected no error when reading file "+fileName)
|
||||
character := models.ImCharacterImport{}
|
||||
err = json.Unmarshal(fileContent, &character)
|
||||
assert.NoError(t, err, "Expected no error when Unmarshal filecontent")
|
||||
|
||||
//checke zauber auf vorhandensein in den Stammdaten
|
||||
zauber := character.Zauber[0]
|
||||
stammF, err := stammdaten.CheckSpell(&zauber, false)
|
||||
assert.Error(t, err, "expexted Error does not exist in zauber Stammdaten")
|
||||
if stammF == nil && err != nil {
|
||||
stammF, err = stammdaten.CheckSpell(&zauber, true)
|
||||
}
|
||||
assert.NoError(t, err, "Expected to finds the zauber Stammdaten in the database")
|
||||
assert.Equal(t, zauber.Name, stammF.Name)
|
||||
assert.Equal(t, zauber.Beschreibung, stammF.Beschreibung)
|
||||
assert.Equal(t, zauber.Quelle, stammF.Quelle)
|
||||
assert.Equal(t, 1, stammF.AP)
|
||||
assert.Equal(t, 1, stammF.Stufe)
|
||||
assert.Equal(t, "Zauberer", stammF.Wirkungsziel)
|
||||
assert.Equal(t, 15, stammF.Reichweite)
|
||||
assert.Equal(t, "midgard", stammF.System)
|
||||
assert.Equal(t, 1, int(stammF.ID))
|
||||
|
||||
// und noch mal
|
||||
//checke zauber auf vorhandensein in den Stammdaten
|
||||
//zauber := character.zauberen[1]
|
||||
stammF, err = stammdaten.CheckSpell(&zauber, false)
|
||||
assert.NoError(t, err, "expexted no Error exist in zauber Stammdaten")
|
||||
if stammF == nil && err != nil {
|
||||
stammF, err = stammdaten.CheckSpell(&zauber, true)
|
||||
}
|
||||
assert.NoError(t, err, "Expected to finds the zauber Stammdaten in the database")
|
||||
assert.Equal(t, zauber.Name, stammF.Name)
|
||||
assert.Equal(t, zauber.Beschreibung, stammF.Beschreibung)
|
||||
assert.Equal(t, zauber.Quelle, stammF.Quelle)
|
||||
assert.Equal(t, 1, stammF.AP)
|
||||
assert.Equal(t, 1, stammF.Stufe)
|
||||
assert.Equal(t, "Zauberer", stammF.Wirkungsziel)
|
||||
assert.Equal(t, 15, stammF.Reichweite)
|
||||
assert.Equal(t, "midgard", stammF.System)
|
||||
assert.Equal(t, 1, int(stammF.ID))
|
||||
*/
|
||||
}
|
||||
|
||||
func TestImportVTT2Char(t *testing.T) {
|
||||
// Setup test database
|
||||
//testDB := SetupTestDB()
|
||||
//DB = testDB // Assign test DB to global DB
|
||||
/*
|
||||
// loading file to Modell
|
||||
fileName := fmt.Sprintf("../testdata/%s", "VTT_Import1.json")
|
||||
assert.Equal(t, "../testdata/VTT_Import1.json", fileName)
|
||||
fileContent, err := os.ReadFile(fileName)
|
||||
assert.NoError(t, err, "Expected no error when reading file "+fileName)
|
||||
character := models.ImCharacterImport{}
|
||||
err = json.Unmarshal(fileContent, &character)
|
||||
assert.NoError(t, err, "Expected no error when Unmarshal filecontent")
|
||||
|
||||
assert.Equal(t, "Harsk Hammerhuter, Zen", character.Name)
|
||||
assert.Equal(t, "Zwerg", character.Rasse)
|
||||
assert.Equal(t, "Hören", character.Fertigkeiten[0].Name)
|
||||
assert.Equal(t, 1, len(character.Zauber))
|
||||
assert.Equal(t, 17, character.Lp.Value)
|
||||
assert.Equal(t, 96, character.Eigenschaften.Gs)
|
||||
assert.Equal(t, 74, character.Eigenschaften.Au)
|
||||
assert.Equal(t, 1, len(character.Ausruestung))
|
||||
assert.Equal(t, "Lederrüstung", character.Ausruestung[0].Name)
|
||||
assert.Equal(t, "blau", character.Merkmale.Augenfarbe)
|
||||
assert.Equal(t, "Lederrucksack", character.Behaeltnisse[0].Name)
|
||||
assert.Equal(t, "Armbrust:schwer", character.Waffen[0].Name)
|
||||
assert.Equal(t, 31, character.Ap.Value)
|
||||
assert.Equal(t, "Armbrüste", character.Waffenfertigkeiten[0].Name)
|
||||
assert.Equal(t, 3, len(character.Spezialisierung))
|
||||
assert.Equal(t, "Kriegshammer", character.Spezialisierung[0])
|
||||
assert.Equal(t, "Armbrust:schwer", character.Spezialisierung[1])
|
||||
//fmt.Println(character)
|
||||
*/
|
||||
}
|
||||
Reference in New Issue
Block a user