示例#1
0
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))
	}
}
示例#2
0
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))
	}
}
示例#3
0
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))
	}
}
示例#4
0
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))
	}
}
示例#5
0
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))
	}
}
示例#6
0
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))
	}
}
示例#7
0
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))
	}
}