Adding handler unit tests 97/34897/1
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 9 Mar 2018 04:58:29 +0000 (20:58 -0800)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 9 Mar 2018 04:58:38 +0000 (20:58 -0800)
Adding updated unit tests for handler.go
They needed to be fleshed out based on the handler implementation

Issue-ID: AAF-131
Change-Id: Id161faef7500947d858e99b9648f951bc1e54e09
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
sms-service/src/sms/Gopkg.lock
sms-service/src/sms/handler/handler_test.go

index 02e2de6..12bdfab 100644 (file)
 [solve-meta]
   analyzer-name = "dep"
   analyzer-version = 1
-  inputs-digest = "7308c3e7f4b4c4536cbae1a89e132c8512650127871bb669a679d81f4563ed92"
+  inputs-digest = "c3b1a2cc60523cdaccc247048d5e99d9b2f5c5f5e7f66c3e1deb9e709ec6f8bc"
   solver-name = "gps-cdcl"
   solver-version = 1
index 82bd78e..e1b5b34 100644 (file)
@@ -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)
+       }
+}