作者:Lanzafam
项目:todo-track
func TestServeTodoJson(t *testing.T) {
params := url.Values{}
params.Add("repo", mockRepo.GetRepoId())
params.Add("revision", TestRevision)
params.Add("fileName", TestFileName)
params.Add("lineNumber", strconv.Itoa(TestLineNumber))
request, err := http.NewRequest("GET", "/todo?"+params.Encode(), strings.NewReader(""))
if err != nil {
t.Error(err)
}
rw := httptest.NewRecorder()
db := dashboard.Dashboard{mockRepos, "", ""}
db.ServeTodoJson(rw, request)
if rw.Code != http.StatusOK {
t.Errorf("Expected a response code of %d, but saw %d, with a body of '%s'",
http.StatusOK, rw.Code, rw.Body.String())
return
}
var returnedTodo repo.TodoDetails
err = json.Unmarshal(rw.Body.Bytes(), &returnedTodo)
if err != nil {
t.Error(err)
}
if returnedTodo.Id.Revision != mockTodo.Revision ||
returnedTodo.Id.FileName != mockTodo.FileName ||
returnedTodo.Id.LineNumber != mockTodo.LineNumber {
t.Errorf("Expected %s, but saw %s", mockTodo, returnedTodo)
}
}
作者:Lanzafam
项目:todo-track
func TestServeRevisionJson(t *testing.T) {
params := url.Values{}
params.Add("repo", mockRepo.GetRepoId())
params.Add("revision", TestRevision)
request, err := http.NewRequest("GET", "/revision?"+params.Encode(), strings.NewReader(""))
if err != nil {
t.Error(err)
}
rw := httptest.NewRecorder()
db := dashboard.Dashboard{mockRepos, "", ""}
db.ServeRevisionJson(rw, request)
if rw.Code != http.StatusOK {
t.Errorf("Expected a response code of %d, but saw %d, with a body of '%s'",
http.StatusOK, rw.Code, rw.Body.String())
return
}
var returnedTodos []repo.Line
err = json.Unmarshal(rw.Body.Bytes(), &returnedTodos)
if err != nil {
t.Error(err)
}
if len(returnedTodos) != 1 || returnedTodos[0] != mockTodo {
t.Errorf("Expected a singleton slice of %s, but saw %s", mockTodo, returnedTodos)
}
}
作者:Lanzafam
项目:todo-track
func TestServeTodoJsonNoRepo(t *testing.T) {
request, err := http.NewRequest("GET", "/todo", strings.NewReader(""))
if err != nil {
t.Error(err)
}
rw := httptest.NewRecorder()
db := dashboard.Dashboard{mockRepos, "", ""}
db.ServeTodoJson(rw, request)
if rw.Code != http.StatusBadRequest {
t.Errorf("Expected a response code of %d, but saw %d", http.StatusBadRequest, rw.Code)
}
}
作者:Lanzafam
项目:todo-track
func TestServeTodoJsonNoRevision(t *testing.T) {
params := url.Values{}
params.Add("repo", mockRepo.GetRepoId())
request, err := http.NewRequest("GET", "/todo?"+params.Encode(), strings.NewReader(""))
if err != nil {
t.Error(err)
}
rw := httptest.NewRecorder()
db := dashboard.Dashboard{mockRepos, "", ""}
db.ServeTodoJson(rw, request)
if rw.Code != http.StatusBadRequest {
t.Errorf("Expected a response code of %d, but saw %d", http.StatusBadRequest, rw.Code)
}
}
作者:Lanzafam
项目:todo-track
func TestServeAliasesJson(t *testing.T) {
request, err := http.NewRequest("GET", "/?repo="+mockRepo.GetRepoId(), strings.NewReader(""))
if err != nil {
t.Error(err)
}
rw := httptest.NewRecorder()
db := dashboard.Dashboard{mockRepos, "", ""}
db.ServeAliasesJson(rw, request)
if rw.Code != http.StatusOK {
t.Errorf("Expected a response code of %d, but saw %d, with a body of '%s'",
http.StatusOK, rw.Code, rw.Body.String())
return
}
var returnedAliases []repo.Alias
err = json.Unmarshal(rw.Body.Bytes(), &returnedAliases)
if err != nil {
t.Error(err)
}
if len(returnedAliases) != 1 || returnedAliases[0] != mockAlias {
t.Errorf("Expected a singleton slice of %s, but saw %s", mockAlias, returnedAliases)
}
}