func TestAddingExistingUser(t *testing.T) { setUp() req := getPOSTRequest(bytes.NewBuffer([]byte(`{"email":"*****@*****.**"}`))) w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) // body buffer gets emptied after RegisterHandler finishes // so we create a new request, with new body req = getPOSTRequest(bytes.NewBuffer([]byte(`{"email":"*****@*****.**"}`))) w = httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusConflict) body := getBodyMap(w) if body["error"] != "Email exists!" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }
func TestRegisterHandlerJSON(t *testing.T) { setUp() req := getPOSTRequest(bytes.NewBuffer([]byte(`{"email":"*****@*****.**"}`))) w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusCreated) body := getBodyMap(w) if _, present := body["created"]; !present || body["email"] != "*****@*****.**" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }
func TestGETRegisterHandler(t *testing.T) { setUp() req := getGETRequest() w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusMethodNotAllowed) body := getBodyMap(w) if body["error"] != "Method not allowed! Use POST" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }
func TestAddingInvalidUser(t *testing.T) { setUp() req := getPOSTRequest(bytes.NewBuffer([]byte(`{"email":"notemail.com"}`))) w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusBadRequest) body := getBodyMap(w) if body["error"] != "Email not valid!" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }
func TestAddingEmptyUser(t *testing.T) { setUp() body := bytes.NewBuffer([]byte(`{"email":""}`)) req := getPOSTRequest(body) w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusBadRequest) respBody := getBodyMap(w) if respBody["error"] != "Email missing!" { t.Error(fmt.Printf("Body not ok (%q)\n", respBody)) } }
func TestRegisterHandlerForm(t *testing.T) { setUp() req := getPOSTRequest(nil) req.PostForm = url.Values{} req.PostForm.Set("email", "*****@*****.**") req.Header.Del("Content-Type") w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusCreated) body := getBodyMap(w) if _, present := body["created"]; !present || body["email"] != "*****@*****.**" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }
func TestAddingAndReadingRegisteredUser(t *testing.T) { setUp() req := getPOSTRequest(bytes.NewBuffer([]byte(`{"email":"*****@*****.**"}`))) w := httptest.NewRecorder() reg.RegisterHandler(buildTestContext("registration_test"), w, req) req = getGETRequest() w = httptest.NewRecorder() reg.IndexHandler(buildTestContext("registration_test"), w, req) assertCode(t, w, http.StatusOK) var body []map[string]interface{} if err := json.Unmarshal([]byte(getBody(w)), &body); err != nil { t.Error(err) } if body[0]["email"] != "*****@*****.**" { t.Error(fmt.Printf("Body not ok (%q)\n", body)) } }