Files
cheesy-arena-lite/api_test.go

51 lines
1.8 KiB
Go
Raw Normal View History

// Copyright 2014 Team 254. All Rights Reserved.
// Author: pat@patfairbank.com (Patrick Fairbank)
package main
import (
"encoding/json"
"github.com/stretchr/testify/assert"
"testing"
)
func TestRankingsApi(t *testing.T) {
clearDb()
defer clearDb()
db, _ = OpenDatabase(testDbPath)
// Test that empty rankings produces an empty array.
recorder := getHttpResponse("/api/rankings")
assert.Equal(t, 200, recorder.Code)
assert.Equal(t, "application/json", recorder.HeaderMap["Content-Type"][0])
2014-07-12 15:51:24 -07:00
rankingsData := struct {
2014-07-13 01:07:21 -07:00
Rankings []RankingWithNickname
TeamNicknames map[string]string
2014-07-12 15:51:24 -07:00
HighestPlayedMatch string
}{}
err := json.Unmarshal([]byte(recorder.Body.String()), &rankingsData)
assert.Nil(t, err)
assert.Equal(t, 0, len(rankingsData.Rankings))
assert.Equal(t, "", rankingsData.HighestPlayedMatch)
2014-07-13 01:07:21 -07:00
ranking1 := RankingWithNickname{Ranking{1114, 2, 18, 1100, 625, 90, 554, 0.254, 9, 1, 0, 0, 10}, "Simbots"}
ranking2 := RankingWithNickname{Ranking{254, 1, 20, 1100, 625, 90, 554, 0.254, 10, 0, 0, 0, 10}, "ChezyPof"}
db.CreateRanking(&ranking1.Ranking)
db.CreateRanking(&ranking2.Ranking)
2014-07-12 15:51:24 -07:00
db.CreateMatch(&Match{Type: "qualification", DisplayName: "29", Status: "complete"})
db.CreateMatch(&Match{Type: "qualification", DisplayName: "30"})
2014-07-13 01:07:21 -07:00
db.CreateTeam(&Team{Id: 254, Nickname: "ChezyPof"})
db.CreateTeam(&Team{Id: 1114, Nickname: "Simbots"})
recorder = getHttpResponse("/api/rankings")
assert.Equal(t, 200, recorder.Code)
assert.Equal(t, "application/json", recorder.HeaderMap["Content-Type"][0])
2014-07-12 15:51:24 -07:00
err = json.Unmarshal([]byte(recorder.Body.String()), &rankingsData)
assert.Nil(t, err)
2014-07-12 15:51:24 -07:00
if assert.Equal(t, 2, len(rankingsData.Rankings)) {
assert.Equal(t, ranking1, rankingsData.Rankings[1])
assert.Equal(t, ranking2, rankingsData.Rankings[0])
}
2014-07-12 15:51:24 -07:00
assert.Equal(t, "29", rankingsData.HighestPlayedMatch)
}