Files
cheesy-arena-lite/model/award_test.go

96 lines
2.3 KiB
Go

// Copyright 2019 Team 254. All Rights Reserved.
// Author: pat@patfairbank.com (Patrick Fairbank)
package model
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestGetNonexistentAward(t *testing.T) {
db := setupTestDb(t)
defer db.Close()
award, err := db.GetAwardById(1114)
assert.Nil(t, err)
assert.Nil(t, award)
}
func TestAwardCrud(t *testing.T) {
db := setupTestDb(t)
defer db.Close()
award := Award{0, JudgedAward, "Saftey Award", 254, ""}
assert.Nil(t, db.CreateAward(&award))
award2, err := db.GetAwardById(1)
assert.Nil(t, err)
assert.Equal(t, award, *award2)
award2.Id = 0
award2.AwardName = "Spirit Award"
assert.Nil(t, db.CreateAward(award2))
awards, err := db.GetAllAwards()
assert.Nil(t, err)
if assert.Equal(t, 2, len(awards)) {
assert.Equal(t, award, awards[0])
assert.Equal(t, *award2, awards[1])
}
award.TeamId = 0
award.PersonName = "Travus Cubington"
assert.Nil(t, db.UpdateAward(&award))
award2, err = db.GetAwardById(1)
assert.Nil(t, err)
assert.Equal(t, award.TeamId, award2.TeamId)
assert.Equal(t, award.PersonName, award2.PersonName)
assert.Nil(t, db.DeleteAward(award.Id))
award2, err = db.GetAwardById(1)
assert.Nil(t, err)
assert.Nil(t, award2)
}
func TestTruncateAwards(t *testing.T) {
db := setupTestDb(t)
defer db.Close()
award := Award{0, JudgedAward, "Saftey Award", 254, ""}
db.CreateAward(&award)
db.TruncateAwards()
award2, err := db.GetAwardById(1)
assert.Nil(t, err)
assert.Nil(t, award2)
}
func TestGetAwardsByType(t *testing.T) {
db := setupTestDb(t)
defer db.Close()
award1 := Award{0, WinnerAward, "Event Winner", 1114, ""}
db.CreateAward(&award1)
award2 := Award{0, FinalistAward, "Event Finalist", 2056, ""}
db.CreateAward(&award2)
award3 := Award{0, JudgedAward, "Saftey Award", 254, ""}
db.CreateAward(&award3)
award4 := Award{0, WinnerAward, "Event Winner", 254, ""}
db.CreateAward(&award4)
awards, err := db.GetAwardsByType(JudgedAward)
assert.Nil(t, err)
if assert.Equal(t, 1, len(awards)) {
assert.Equal(t, award3, awards[0])
}
awards, err = db.GetAwardsByType(FinalistAward)
assert.Nil(t, err)
if assert.Equal(t, 1, len(awards)) {
assert.Equal(t, award2, awards[0])
}
awards, err = db.GetAwardsByType(WinnerAward)
assert.Nil(t, err)
if assert.Equal(t, 2, len(awards)) {
assert.Equal(t, award1, awards[0])
assert.Equal(t, award4, awards[1])
}
}