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) } }
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) } }
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) } }
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) } }
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) } }