From ceff2840d80fa123f8f5337fad23eb1cb818e9ed Mon Sep 17 00:00:00 2001 From: Cesar Celis Hernandez Date: Sat, 22 Jan 2022 23:58:51 -0500 Subject: [PATCH] Add get user info test (#1438) Co-authored-by: cniackz Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- integration/users_test.go | 70 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/integration/users_test.go b/integration/users_test.go index ac1c40f01..3c723aa5c 100644 --- a/integration/users_test.go +++ b/integration/users_test.go @@ -63,7 +63,7 @@ func AddUser(accessKey string, secretKey string, groups []string, policies []str return response, err } -func DeleteUser(bucketName string) (*http.Response, error) { +func DeleteUser(userName string) (*http.Response, error) { /* This is an atomic function to delete user and can be reused across different functions. @@ -73,7 +73,7 @@ func DeleteUser(bucketName string) (*http.Response, error) { } fmt.Println("...................................TestAddUser(): Remove user") request, err := http.NewRequest( - "DELETE", "http://localhost:9090/api/v1/user?name="+bucketName, nil) + "DELETE", "http://localhost:9090/api/v1/user?name="+userName, nil) if err != nil { log.Println(err) } @@ -109,6 +109,27 @@ func ListUsers(offset string, limit string) (*http.Response, error) { return response, err } +func GetUserInformation(userName string) (*http.Response, error) { + /* + Helper function to get user information via API: + {{baseUrl}}/user?name=proident velit + */ + client := &http.Client{ + Timeout: 3 * time.Second, + } + request, err := http.NewRequest( + "GET", + "http://localhost:9090/api/v1/user?name="+userName, + nil) + if err != nil { + log.Println(err) + } + request.Header.Add("Cookie", fmt.Sprintf("token=%s", token)) + request.Header.Add("Content-Type", "application/json") + response, err := client.Do(request) + return response, err +} + func TestAddUser(t *testing.T) { /* This is an API Test to add a user via api/v1/users, the intention @@ -238,3 +259,48 @@ func TestListUsers(t *testing.T) { } } } + +func TestGetUserInfo(t *testing.T) { + /* + Test to get the user information via API. + */ + + // 1. Create the user + fmt.Println("TestGetUserInfo(): 1. Create the user") + assert := assert.New(t) + var groups = []string{} + var policies = []string{} + response, err := AddUser("accessKey", "secretKey", groups, policies) + if err != nil { + log.Println(err) + return + } + if response != nil { + fmt.Println("POST StatusCode:", response.StatusCode) + assert.Equal(201, response.StatusCode, "Status Code is incorrect") + } + + // 2. Get user information + fmt.Println("TestGetUserInfo(): 2. Get user information") + response, err = GetUserInformation("accessKey") + if err != nil { + log.Println(err) + assert.Fail("There was an error in the response") + return + } + + // 3. Verify user information + fmt.Println("TestGetUserInfo(): 3. Verify user information") + if response != nil { + fmt.Println("POST StatusCode:", response.StatusCode) + assert.Equal(200, response.StatusCode, "Status Code is incorrect") + } + b, err := io.ReadAll(response.Body) + if err != nil { + log.Fatalln(err) + } + fmt.Println(string(b)) + expected := "{\"accessKey\":\"accessKey\",\"memberOf\":null,\"policy\":[],\"status\":\"enabled\"}\n" + obtained := string(b) + assert.Equal(expected, obtained, "User Information is wrong") +}