diff --git a/internal/sdk/cloudian/sdk_test.go b/internal/sdk/cloudian/sdk_test.go index 39c4f52c..2f6676d1 100644 --- a/internal/sdk/cloudian/sdk_test.go +++ b/internal/sdk/cloudian/sdk_test.go @@ -1,16 +1,71 @@ package cloudian import ( + "context" "encoding/json" "errors" "fmt" "math/rand" + "net/http" + "net/http/httptest" "reflect" "strings" "testing" "testing/quick" ) +func TestGetGroup(t *testing.T) { + // Create a mock server + mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte(`{ + "active": "true", + "groupId": "QA", + "groupName": "Quality Assurance Group", + "ldapEnabled": false, + "ldapGroup": "", + "ldapMatchAttribute": "", + "ldapSearch": "", + "ldapSearchUserBase": "", + "ldapServerURL": "", + "ldapUserDNTemplate": "", + "s3endpointshttp": ["ALL"], + "s3endpointshttps": ["ALL"], + "s3websiteendpoints": ["ALL"] + }`)) + })) + defer mockServer.Close() + + mockClient := &http.Client{} + + req, err := http.NewRequestWithContext(context.TODO(), http.MethodGet, mockServer.URL, nil) + if err != nil { + t.Fatalf("Failed to create request: %v", err) + } + + resp, err := mockClient.Do(req) + if err != nil { + t.Fatalf("Failed to send request: %v", err) + } + defer resp.Body.Close() + + cloudianClient := Client{ + baseURL: mockServer.URL, + httpClient: mockClient, + authHeader: "", + } + + group, err := cloudianClient.GetGroup(context.TODO(), "QA") + + if err != nil { + t.Errorf("Error getting group: %v", err) + } + + if group.GroupID != "QA" { + t.Errorf("Expected QA, got %v", group.GroupID) + } +} + func TestRealisticGroupSerialization(t *testing.T) { jsonString := `{ "active": "true",