gogmagog/routes/actions_unauthorized_test.go

120 lines
2.7 KiB
Go

package routes_test
import (
"bytes"
"context"
"encoding/json"
"gitea.deepak.science/deepak/gogmagog/models"
"gitea.deepak.science/deepak/gogmagog/routes"
"github.com/stretchr/testify/assert"
"net/http"
"net/http/httptest"
"testing"
)
func TestEmptyActionEmptyContext(t *testing.T) {
// set up
assert := assert.New(t)
m := getEmptyModel()
router := routes.NewActionRouter(m)
req, _ := http.NewRequestWithContext(context.Background(), "GET", "/", nil)
rr := httptest.NewRecorder()
// function under test
router.ServeHTTP(rr, req)
// check results
status := rr.Code
assert.Equal(http.StatusUnauthorized, status)
}
func TestOneActionEmptyContext(t *testing.T) {
// set up
assert := assert.New(t)
planDescription := "2006-01-02"
p := &models.Plan{PlanID: 6, PlanDescription: planDescription, UserID: 3}
m := getEmptyModel()
m.AddPlan(p, 3)
router := routes.NewActionRouter(m)
req, _ := http.NewRequestWithContext(context.Background(), "GET", "/", nil)
rr := httptest.NewRecorder()
// function under test
router.ServeHTTP(rr, req)
// check results
status := rr.Code
assert.Equal(http.StatusUnauthorized, status)
}
func TestOneActionByIDEmptyContext(t *testing.T) {
// set up
assert := assert.New(t)
planDescription := "2021-01-01"
p := &models.Plan{PlanID: 6, PlanDescription: planDescription, UserID: 3}
m := getEmptyModel()
m.AddPlan(p, 3)
router := routes.NewActionRouter(m)
req, _ := http.NewRequestWithContext(context.Background(), "GET", "/1", nil)
rr := httptest.NewRecorder()
// function under test
router.ServeHTTP(rr, req)
// check results
status := rr.Code
assert.Equal(http.StatusUnauthorized, status)
}
func TestPureJSONActionEmptyContext(t *testing.T) {
// set up
assert := assert.New(t)
m := getEmptyModel()
router := routes.NewActionRouter(m)
data := []byte(`{
"plan_description": "2021-01-01T00:00:00Z",
"plan_id": 1,
"user_id": 3
}`)
req, _ := http.NewRequestWithContext(context.Background(), "POST", "/", bytes.NewBuffer(data))
req.Header.Set("Content-Type", "application/json")
rr := httptest.NewRecorder()
// function under test
router.ServeHTTP(rr, req)
// check results
status := rr.Code
assert.Equal(http.StatusUnauthorized, status)
}
func TestPutActionEmptyContext(t *testing.T) {
// set up
assert := assert.New(t)
a := &models.Action{PlanID: 6}
m := getEmptyModel()
m.AddAction(a, 3)
router := routes.NewActionRouter(m)
data, _ := json.Marshal(a)
req, _ := http.NewRequestWithContext(context.Background(), "PUT", "/1", bytes.NewBuffer(data))
req.Header.Set("Content-Type", "application/json")
rr := httptest.NewRecorder()
// function under test
router.ServeHTTP(rr, req)
// check results
status := rr.Code
assert.Equal(http.StatusUnauthorized, status)
}