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