Browse Source

Initial Group Tests

Matthew R Kasun 4 years ago
parent
commit
7f4d33ba52
1 changed files with 72 additions and 10 deletions
  1. 72 10
      group_test.go

+ 72 - 10
group_test.go

@@ -12,23 +12,74 @@ import (
 var Groups []models.Group
 var Groups []models.Group
 
 
 func TestGetGroups(t *testing.T) {
 func TestGetGroups(t *testing.T) {
-	t.Run("GetGroupValidToken", func(t *testing.T) {
+	t.Run("GetGroupsValidToken", func(t *testing.T) {
 		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups", "secretkey")
 		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups", "secretkey")
 		assert.Nil(t, err, err)
 		assert.Nil(t, err, err)
 		defer response.Body.Close()
 		defer response.Body.Close()
 		assert.Equal(t, http.StatusOK, response.StatusCode)
 		assert.Equal(t, http.StatusOK, response.StatusCode)
+		err = json.NewDecoder(response.Body).Decode(&Groups)
+		assert.Nil(t, err, err)
+	})
+	t.Run("GetGroupsInvalidToken", func(t *testing.T) {
+		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups", "badkey")
+		assert.Nil(t, err, err)
+		defer response.Body.Close()
+		var message models.ErrorResponse
+		err = json.NewDecoder(response.Body).Decode(&message)
+		assert.Nil(t, err, err)
+		assert.Equal(t, http.StatusUnauthorized, response.StatusCode)
+		assert.Equal(t, http.StatusUnauthorized, message.Code)
+		assert.Equal(t, "W1R3: You are unauthorized to access this endpoint.", message.Message)
+	})
+}
+
+func TestCreateGroup(t *testing.T) {
+	group := models.Group{}
+	group.NameID = "skynet"
+	group.AddressRange = "10.71.0.0/16"
+	t.Run("CreateGroup", func(t *testing.T) {
+		response, err := api(t, group, http.MethodPost, "http://localhost:8081/api/groups", "secretkey")
+		assert.Nil(t, err, err)
+		assert.Equal(t, http.StatusOK, response.StatusCode)
+	})
+	t.Run("CreateGroupInvalidToken", func(t *testing.T) {
+		response, err := api(t, group, http.MethodPost, "http://localhost:8081/api/groups", "badkey")
+		assert.Nil(t, err, err)
+		assert.Equal(t, http.StatusUnauthorized, response.StatusCode)
+		defer response.Body.Close()
+		var message models.ErrorResponse
+		err = json.NewDecoder(response.Body).Decode(&message)
+		assert.Nil(t, err, err)
+		assert.Equal(t, http.StatusUnauthorized, message.Code)
+		assert.Equal(t, "W1R3: You are unauthorized to access this endpoint.", message.Message)
+	})
+	t.Run("CreateGroupBadName", func(t *testing.T) {
+		//issue #42
+		t.Skip()
+	})
+	t.Run("CreateGroupBadAddress", func(t *testing.T) {
+		//issue #42
+		t.Skip()
+	})
+	t.Run("CreateGroupDuplicateGroup", func(t *testing.T) {
+		//issue #42
+		t.Skip()
+	})
+}
 
 
-		decoder := json.NewDecoder(response.Body)
-		for decoder.More() {
-			var group models.Group
-			err := decoder.Decode(&group)
-			assert.Nil(t, err, err)
-			Groups = append(Groups, group)
-		}
-		t.Log(Groups)
+func TestGetGroup(t *testing.T) {
+	t.Run("GetGroupValidToken", func(t *testing.T) {
+		var group models.Group
+		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups/skynet", "secretkey")
+		assert.Nil(t, err, err)
+		defer response.Body.Close()
+		assert.Equal(t, http.StatusOK, response.StatusCode)
+		err = json.NewDecoder(response.Body).Decode(&group)
+		assert.Nil(t, err, err)
+		assert.Equal(t, group.DisplayName, "skynet")
 	})
 	})
 	t.Run("GetGroupInvalidToken", func(t *testing.T) {
 	t.Run("GetGroupInvalidToken", func(t *testing.T) {
-		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups", "badkey")
+		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups/skynet", "badkey")
 		assert.Nil(t, err, err)
 		assert.Nil(t, err, err)
 		defer response.Body.Close()
 		defer response.Body.Close()
 		var message models.ErrorResponse
 		var message models.ErrorResponse
@@ -38,4 +89,15 @@ func TestGetGroups(t *testing.T) {
 		assert.Equal(t, http.StatusUnauthorized, message.Code)
 		assert.Equal(t, http.StatusUnauthorized, message.Code)
 		assert.Equal(t, "W1R3: You are unauthorized to access this endpoint.", message.Message)
 		assert.Equal(t, "W1R3: You are unauthorized to access this endpoint.", message.Message)
 	})
 	})
+	t.Run("GetGroupInvalidGroup", func(t *testing.T) {
+		response, err := api(t, "", http.MethodGet, "http://localhost:8081/api/groups/badgroup", "secretkey")
+		assert.Nil(t, err, err)
+		defer response.Body.Close()
+		var message models.ErrorResponse
+		err = json.NewDecoder(response.Body).Decode(&message)
+		assert.Nil(t, err, err)
+		assert.Equal(t, "W1R3: This group does not exist.", message.Message)
+		assert.Equal(t, http.StatusNotFound, response.StatusCode)
+	})
+
 }
 }