|
|
package model
import ( "testing"
"git.aiterp.net/AiteRP/aitestory/server" )
func TestTag(t *testing.T) { if server.Main.Config.DB.Password == "" { t.Skip("No database password") return }
var testTag *Tag name := "Te'Eryvi (Test)" id := ""
t.Run("Insert", func(t *testing.T) { tag := Tag{} tag.Name = name tag.Type = "Organization"
err := tag.Insert() if err != nil { t.Log("Failed to insert:", err) t.Fail() }
id = tag.ID })
t.Run("Insert_BadType", func(t *testing.T) { tag := Tag{} tag.Name = "Ehanis Tioran" tag.Type = "Karakter"
err := tag.Insert() if err == nil { t.Log("Oops, it was inserted.") t.Fail() return }
if err.Error() != `invalid tag type` { t.Log("Wrong error:", err) t.Fail() } })
t.Run("Insert_BadName", func(t *testing.T) { tag := Tag{} tag.Name = "" tag.Type = "Character"
err := tag.Insert() if err == nil { t.Log("Oops, it was inserted.") t.Fail() return }
if err.Error() != `invalid length` { t.Log("Wrong error:", err) t.Fail() } })
t.Run("List", func(t *testing.T) { tags, err := ListTags() if err != nil { t.Log("Failed to get tags:", err) t.Fail() } if len(tags) == 0 { t.Log("No tags found") t.Fail() }
t.Logf("%d tags found", len(tags))
found := false for _, tag := range tags { if tag.Name == name && tag.ID == id { t.Logf("Tag found: %+v", tag) found = true break } } if !found { t.Log("The tag inserted in last test wasn't found") t.Fail() } })
t.Run("FindByID", func(t *testing.T) { tag, err := FindTag("id", id) if err != nil { t.Log("Failed to find tag:", err) t.Fail() } if tag == nil { t.Log("No tag found") t.Fail() return }
t.Logf("Tag found: %+v", tag)
if tag.Name != name || tag.ID != id { t.Error("Incorrect tag") t.Fail() }
testTag = tag })
t.Run("FindByName", func(t *testing.T) { tag, err := FindTag("name", name) if err != nil { t.Log("Failed to find tag:", err) t.Fail() } if tag == nil { t.Log("No tag found") t.Fail() return }
t.Logf("Tag found: %+v", tag)
if tag.Name != name || tag.ID != id { t.Error("Incorrect tag") t.Fail() }
testTag = tag })
t.Run("Update", func(t *testing.T) { if testTag == nil { t.Error("No tag to modify") t.Fail() return }
testTag.Type = "Character" testTag.Name = "Urdnot Sild"
err := testTag.Update() if err != nil { t.Error("Modify failed:", err) t.Fail() }
tag, err := FindTag("name", name) if err != nil && err.Error() != "not found" { t.Log("Failed to get tags:", err) t.Fail() } if tag != nil { t.Log("Tag found by old name") t.Fail() return }
name = testTag.Name })
t.Run("FindByName", func(t *testing.T) { tag, err := FindTag("name", name) if err != nil { t.Log("Failed to get tags:", err) t.Fail() } if tag == nil { t.Log("No tag found") t.Fail() return }
t.Logf("Tag found: %+v", tag)
if tag.Name != name || tag.ID != id { t.Error("Incorrect tag") t.Fail() } })
t.Run("EnsureTag", func(t *testing.T) { tag, err := EnsureTag("Character", "Renala T'Iavay (Test)") if err != nil { t.Error(err) return }
err = tag.Delete() if err != nil { t.Error(err) return }
if tag.ID == testTag.ID { t.Error("Ensured tag matched old tag") return }
tag2, err := EnsureTag(testTag.Type, testTag.Name) if err != nil { t.Error(err) return }
if tag2.ID != testTag.ID { t.Error("Second ensured tag did not match testTag") return } })
t.Run("Delete", func(t *testing.T) { if testTag == nil { t.Error("No tag to delete") t.Fail() return }
err := testTag.Delete() if err != nil { t.Error("Delete failed:", err) t.Fail() } }) }
|