diff options
-rw-r--r-- | sms-service/src/sms/Gopkg.lock | 2 | ||||
-rw-r--r-- | sms-service/src/sms/handler/handler_test.go | 155 |
2 files changed, 153 insertions, 4 deletions
diff --git a/sms-service/src/sms/Gopkg.lock b/sms-service/src/sms/Gopkg.lock index 02e2de6..12bdfab 100644 --- a/sms-service/src/sms/Gopkg.lock +++ b/sms-service/src/sms/Gopkg.lock @@ -156,6 +156,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "7308c3e7f4b4c4536cbae1a89e132c8512650127871bb669a679d81f4563ed92" + inputs-digest = "c3b1a2cc60523cdaccc247048d5e99d9b2f5c5f5e7f66c3e1deb9e709ec6f8bc" solver-name = "gps-cdcl" solver-version = 1 diff --git a/sms-service/src/sms/handler/handler_test.go b/sms-service/src/sms/handler/handler_test.go index 82bd78e..e1b5b34 100644 --- a/sms-service/src/sms/handler/handler_test.go +++ b/sms-service/src/sms/handler/handler_test.go @@ -17,6 +17,7 @@ package handler import ( + "bytes" "encoding/json" "net/http" "net/http/httptest" @@ -47,15 +48,22 @@ func (b *TestBackend) Unseal(shard string) error { } func (b *TestBackend) GetSecret(dom string, sec string) (smsbackend.Secret, error) { - return smsbackend.Secret{}, nil + return smsbackend.Secret{ + Name: "testsecret", + Values: map[string]interface{}{ + "name": "john", + "profession": "engineer", + }, + }, nil } func (b *TestBackend) ListSecret(dom string) ([]string, error) { - return nil, nil + return []string{"testsecret1", "testsecret2"}, nil } func (b *TestBackend) CreateSecretDomain(name string) (smsbackend.SecretDomain, error) { - return smsbackend.SecretDomain{}, nil + return smsbackend.SecretDomain{UUID: "123e4567-e89b-12d3-a456-426655440000", + Name: "testdomain"}, nil } func (b *TestBackend) CreateSecret(dom string, sec smsbackend.Secret) error { @@ -110,3 +118,144 @@ func TestStatusHandler(t *testing.T) { rr.Body.String(), expectedStr) } } + +func TestCreateSecretDomainHandler(t *testing.T) { + body := `{"uuid":"123e4567-e89b-12d3-a456-426655440000","name":"testdomain"}` + reader := strings.NewReader(body) + req, err := http.NewRequest("POST", "/v1/sms/domain", reader) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.createSecretDomainHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusCreated { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } + + expected := smsbackend.SecretDomain{ + UUID: "123e4567-e89b-12d3-a456-426655440000", + Name: "testdomain", + } + + got := smsbackend.SecretDomain{} + json.NewDecoder(rr.Body).Decode(&got) + + if reflect.DeepEqual(expected, got) == false { + t.Errorf("CreateSecretDomainHandler returned unexpected body: got %v;"+ + " expected %v", got, expected) + } +} + +func TestCreateSecretHandler(t *testing.T) { + data := smsbackend.Secret{ + Name: "testsecret", + Values: map[string]interface{}{ + "name": "john", + "age": 43, + "isadmin": true, + }, + } + + jdata, err := json.Marshal(data) + req, err := http.NewRequest("POST", "/v1/sms/domain/testdomain/secret", bytes.NewReader(jdata)) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.createSecretHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusCreated { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } +} + +func TestDeleteSecretDomainHandler(t *testing.T) { + req, err := http.NewRequest("DELETE", "/v1/sms/domain/testdomain", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.deleteSecretDomainHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusNoContent { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } +} + +func TestDeleteSecretHandler(t *testing.T) { + req, err := http.NewRequest("DELETE", "/v1/sms/domain/testdomain/secret/testsecret", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.deleteSecretHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusOK { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } +} + +func TestGetSecretHandler(t *testing.T) { + req, err := http.NewRequest("DELETE", "/v1/sms/domain/testdomain/secret/testsecret", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.getSecretHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusOK { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } + + expected := smsbackend.Secret{ + Name: "testsecret", + Values: map[string]interface{}{ + "profession": "engineer", + "name": "john", + }, + } + + got := smsbackend.Secret{} + json.NewDecoder(rr.Body).Decode(&got) + + if reflect.DeepEqual(expected, got) == false { + t.Errorf("CreateSecretDomainHandler returned unexpected body: got: %v"+ + " expected: %v", got, expected) + } +} + +func TestListSecretHandler(t *testing.T) { + req, err := http.NewRequest("DELETE", "/v1/sms/domain/testdomain/secret", nil) + if err != nil { + t.Fatal(err) + } + + rr := httptest.NewRecorder() + hr := http.HandlerFunc(h.listSecretHandler) + + hr.ServeHTTP(rr, req) + if rr.Code != http.StatusOK { + t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) + } + + expected := []string{"testsecret1", "testsecret2"} + + var got []string + json.NewDecoder(rr.Body).Decode(&got) + + if reflect.DeepEqual(expected, got) == false { + t.Errorf("CreateSecretDomainHandler returned unexpected body: got: %v"+ + " expected: %v", got, expected) + } +} |