200 lines
4.7 KiB
Go
200 lines
4.7 KiB
Go
|
package controllers_test
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"magmise/controllers"
|
||
|
"magmise/models"
|
||
|
"magmise/test"
|
||
|
"net/http"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
// "/user/{username}"
|
||
|
func TestGetUser(t *testing.T) {
|
||
|
setup := test.Setup(t, "get user")
|
||
|
defer setup()
|
||
|
|
||
|
var user controllers.User
|
||
|
w := test.Request(t, user.Get, "GET", "/user/{username}", `{}`, map[string]string{"username": "fred"})
|
||
|
|
||
|
var usermodel models.User
|
||
|
if json.Unmarshal(w.Body.Bytes(), &usermodel) != nil {
|
||
|
t.Fail()
|
||
|
}
|
||
|
if usermodel.Username != "fred" {
|
||
|
t.Fatal(usermodel)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// "/user"
|
||
|
func TestCreateUser(t *testing.T) {
|
||
|
setup := test.Setup(t, "create user")
|
||
|
defer setup()
|
||
|
var user controllers.User
|
||
|
w := test.Request(t, user.Create, "POST", "/user/{username}", `{"username": "fred", "password": "a"}`, nil)
|
||
|
if w.Code != http.StatusOK {
|
||
|
t.Fatal(w.Code, w.Result().Status)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// // "/user/application/:userid/:discordid"
|
||
|
// func TestCreateuser(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
|
||
|
// var user controllers.User
|
||
|
// handler := http.HandlerFunc(user.Createuser)
|
||
|
// r, err := http.NewRequest("POST", "/user/application/:userid/:discordid", nil)
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":userid", "6")
|
||
|
// q.Add(":discordid", "6")
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Fail()
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
// // PATCH "/user/application/:userid"
|
||
|
// func TestUpdateuser(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
// t.Log("Test Updateuser")
|
||
|
// usermodel := models.User{userId: "1", Status: "closed"}
|
||
|
// userjson, err := json.Marshal(usermodel)
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// var user controllers.Userco
|
||
|
// handler := http.HandlerFunc(user.Updateuser)
|
||
|
// r, err := http.NewRequest("PATCH", "/user/application/:userid", bytes.NewBuffer(userjson))
|
||
|
// r.Header.Set("Content-Type", "application/json; charset=UTF-8")
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":userid", "1")
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Log(w.Body)
|
||
|
// t.Fatal(w.Code)
|
||
|
// }
|
||
|
// usermodel.Read()
|
||
|
// if usermodel.Status != "closed" {
|
||
|
|
||
|
// t.Fail()
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
// // "/user/application/:userid"
|
||
|
// func TestDeleteuser(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
|
||
|
// var user controllers.User
|
||
|
// handler := http.HandlerFunc(user.Deleteuser)
|
||
|
// r, err := http.NewRequest("POST", "/user/application/:userid", nil)
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":userid", "1")
|
||
|
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Fail()
|
||
|
// }
|
||
|
// }
|
||
|
|
||
|
// // /user/:discordid/users/application/:status/
|
||
|
// func TestGetUserusers(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
|
||
|
// handler := http.HandlerFunc(controllers.User{}.GetUserusers)
|
||
|
// r, err := http.NewRequest("GET", "/user/:discordid/users/application/:status/", nil)
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":discordid", "1")
|
||
|
// q.Add(":status", "all")
|
||
|
// q.Add(":limit", "100")
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Fail()
|
||
|
// }
|
||
|
// var users []models.User
|
||
|
// if json.Unmarshal(w.Body.Bytes(), &users) != nil {
|
||
|
// t.Fatal("Failed unmarshal")
|
||
|
// }
|
||
|
|
||
|
// for _, user := range users {
|
||
|
// t.Log(user)
|
||
|
// t.Log("\n")
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
|
||
|
// // /users/application/:status/
|
||
|
// func TestGetusers(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
|
||
|
// handler := http.HandlerFunc(controllers.User{}.GetUserusers)
|
||
|
// r, err := http.NewRequest("GET", "/users/application/:status/", nil)
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":status", "all")
|
||
|
// q.Add(":limit", "100")
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Fail()
|
||
|
// }
|
||
|
// var users []models.User
|
||
|
// if json.Unmarshal(w.Body.Bytes(), &users) != nil {
|
||
|
// t.Fatal("Failed unmarshal")
|
||
|
// }
|
||
|
|
||
|
// for _, user := range users {
|
||
|
// t.Log(user)
|
||
|
// t.Log("\n")
|
||
|
// }
|
||
|
|
||
|
// }
|
||
|
|
||
|
// // "/answer/application/:userid/"
|
||
|
// func TestAddAnswer(t *testing.T) {
|
||
|
// setup := test.Setup(t)
|
||
|
// defer setup()
|
||
|
|
||
|
// var user controllers.User
|
||
|
// handler := http.HandlerFunc(user.AddAnswer)
|
||
|
// r, err := http.NewRequest("POST", "/answer/application/:userid/", bytes.NewBufferString("Hello world"))
|
||
|
// if err != nil {
|
||
|
// t.Fatal(err)
|
||
|
// }
|
||
|
// q := r.URL.Query()
|
||
|
// q.Add(":userid", "1")
|
||
|
// r.URL.RawQuery = q.Encode()
|
||
|
// w := httptest.NewRecorder()
|
||
|
// handler(w, r)
|
||
|
// if w.Code != 200 {
|
||
|
// t.Fatal("Failed to add answer", w.Code)
|
||
|
// }
|
||
|
// }
|