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 TestEmptyPlanEmptyContext(t *testing.T) { // set up assert := assert.New(t) m := getEmptyModel() router := routes.NewPlanRouter(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 TestOnePlanEmptyContext(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.NewPlanRouter(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 TestOnePlanByIDEmptyContext(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.NewPlanRouter(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 TestPureJSONEmptyContext(t *testing.T) { // set up assert := assert.New(t) m := getEmptyModel() router := routes.NewPlanRouter(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 TestPutPlanEmptyContext(t *testing.T) { // set up assert := assert.New(t) p := &models.Plan{PlanID: 6, PlanDescription: "sth"} m := getEmptyModel() m.AddPlan(p, 3) router := routes.NewPlanRouter(m) data, _ := json.Marshal(p) 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) }