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