mirror of https://github.com/dirtbags/moth.git
Adding tests for points and message public operations
This commit is contained in:
parent
368e7306c3
commit
75733415c3
|
@ -84,6 +84,12 @@ func TestState(t *testing.T) {
|
||||||
|
|
||||||
s.AwardPoints(teamID, category, points)
|
s.AwardPoints(teamID, category, points)
|
||||||
s.refresh()
|
s.refresh()
|
||||||
|
|
||||||
|
if (! s.PointExists(teamID, category, points)) {
|
||||||
|
t.Logf("Unable to find points %s/%d for team %s", category, points, teamID)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
pl = s.PointsLog()
|
pl = s.PointsLog()
|
||||||
if len(pl) != 1 {
|
if len(pl) != 1 {
|
||||||
for i, award := range pl {
|
for i, award := range pl {
|
||||||
|
@ -131,6 +137,153 @@ func TestState(t *testing.T) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestStatePointsRemoval(t *testing.T) {
|
||||||
|
s := NewTestState()
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
team := "team1"
|
||||||
|
category := "meow"
|
||||||
|
points1 := 100
|
||||||
|
points2 := points1 + 1
|
||||||
|
|
||||||
|
|
||||||
|
s.AwardPoints(team, category, points1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLogLength := len(s.PointsLog())
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.AwardPoints(team, category, points2)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLogLength = len(s.PointsLog())
|
||||||
|
if pointsLogLength != 2 {
|
||||||
|
t.Logf("Expected 2 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePoints(team, category, points1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog := s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((pointsLog[0].TeamID == team) && (pointsLog[0].Category == category) && (pointsLog[0].Points == points2)) {
|
||||||
|
t.Logf("Found unexpected points log entry: %s", pointsLog[0])
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePoints(team, category, points1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog = s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePoints(team, category, points2)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog = s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 0 {
|
||||||
|
t.Logf("Expected 0 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStatePointsRemovalAtTime(t *testing.T) {
|
||||||
|
s := NewTestState()
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
team := "team1"
|
||||||
|
category := "meow"
|
||||||
|
points1 := 100
|
||||||
|
points2 := points1 + 1
|
||||||
|
now := time.Now().Unix()
|
||||||
|
time1 := now
|
||||||
|
time2 := now+10
|
||||||
|
|
||||||
|
|
||||||
|
s.AwardPointsAtTime(team, category, points1, time1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLogLength := len(s.PointsLog())
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
pointsLog := s.PointsLog()
|
||||||
|
if ((pointsLog[0].When != time1) || (pointsLog[0].TeamID != team) || (pointsLog[0].Category != category) || (pointsLog[0].Points != points1)) {
|
||||||
|
t.Logf("Received unexpected points entry: %s", pointsLog[0])
|
||||||
|
}
|
||||||
|
|
||||||
|
s.AwardPointsAtTime(team, category, points2, time2)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLogLength = len(s.PointsLog())
|
||||||
|
if pointsLogLength != 2 {
|
||||||
|
t.Logf("Expected 2 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove valid points, but at wrong time
|
||||||
|
s.RemovePointsAtTime(team, category, points1, time2)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLogLength = len(s.PointsLog())
|
||||||
|
if pointsLogLength != 2 {
|
||||||
|
t.Logf("Expected 2 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePointsAtTime(team, category, points1, time1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog = s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((pointsLog[0].When != time2) || (pointsLog[0].TeamID != team) || (pointsLog[0].Category != category) || (pointsLog[0].Points != points2)) {
|
||||||
|
t.Logf("Found unexpected points log entry: %s", pointsLog[0])
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePointsAtTime(team, category, points1, time1)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog = s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 1 {
|
||||||
|
t.Logf("Expected 1 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
s.RemovePointsAtTime(team, category, points2, time2)
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
pointsLog = s.PointsLog()
|
||||||
|
pointsLogLength = len(pointsLog)
|
||||||
|
if pointsLogLength != 0 {
|
||||||
|
t.Logf("Expected 0 point in the log, got %d", pointsLogLength)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Out of order points insertion, issue #168
|
// Out of order points insertion, issue #168
|
||||||
func TestStateOutOfOrderAward(t *testing.T) {
|
func TestStateOutOfOrderAward(t *testing.T) {
|
||||||
s := NewTestState()
|
s := NewTestState()
|
||||||
|
@ -139,13 +292,24 @@ func TestStateOutOfOrderAward(t *testing.T) {
|
||||||
points := 100
|
points := 100
|
||||||
|
|
||||||
now := time.Now().Unix()
|
now := time.Now().Unix()
|
||||||
if err := s.awardPointsAtTime(now+20, "AA", category, points); err != nil {
|
if err := s.AwardPointsAtTime("AA", category, points, now+20); err != nil {
|
||||||
t.Error("Awarding points to team ZZ:", err)
|
t.Error("Awarding points to team ZZ:", err)
|
||||||
}
|
}
|
||||||
if err := s.awardPointsAtTime(now+10, "ZZ", category, points); err != nil {
|
if err := s.AwardPointsAtTime("ZZ", category, points, now+10); err != nil {
|
||||||
t.Error("Awarding points to team AA:", err)
|
t.Error("Awarding points to team AA:", err)
|
||||||
}
|
}
|
||||||
s.refresh()
|
s.refresh()
|
||||||
|
|
||||||
|
if (! s.PointExistsAtTime("AA", category, points, now+20)) {
|
||||||
|
t.Logf("Unable to find points awarded to team AA for %s/%d at %d", category, points, now+20)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! s.PointExistsAtTime("ZZ", category, points, now+10)) {
|
||||||
|
t.Logf("Unable to find points awarded to team ZZ for %s/%d at %d", category, points, now+10)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
pl := s.PointsLog()
|
pl := s.PointsLog()
|
||||||
if len(pl) != 2 {
|
if len(pl) != 2 {
|
||||||
t.Error("Wrong length for points log")
|
t.Error("Wrong length for points log")
|
||||||
|
@ -299,6 +463,32 @@ func TestStateMaintainer(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMessage(t *testing.T) {
|
||||||
|
s := NewTestState()
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
message := "foobar"
|
||||||
|
|
||||||
|
retrievedMessage := s.Messages()
|
||||||
|
if (retrievedMessage != "") {
|
||||||
|
t.Logf("Expected empty message, received '%s' instead", retrievedMessage)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
|
||||||
|
if err:= s.SetMessages(message); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
s.refresh()
|
||||||
|
|
||||||
|
retrievedMessage = s.Messages()
|
||||||
|
|
||||||
|
if (retrievedMessage != message) {
|
||||||
|
t.Logf("Expected message '%s', received '%s', instead", message, retrievedMessage)
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestDevelState(t *testing.T) {
|
func TestDevelState(t *testing.T) {
|
||||||
s := NewTestState()
|
s := NewTestState()
|
||||||
ds := NewDevelState(s)
|
ds := NewDevelState(s)
|
||||||
|
|
Loading…
Reference in New Issue