Skip to content

Commit

Permalink
Big refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
akirill0v committed Jun 19, 2017
1 parent 91a8f5e commit 3ea1cea
Show file tree
Hide file tree
Showing 16 changed files with 240 additions and 339 deletions.
25 changes: 8 additions & 17 deletions enroll.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@ type ResponseEnroll struct {

// Enroll an image
func (k *Kairos) Enroll(image, subjectID, galleryName, minHeadScale string, multipleFaces bool) (*ResponseEnroll, error) {
p := make(map[string]interface{})
p["image"] = image
p["subject_id"] = subjectID
p["gallery_name"] = galleryName
p := map[string]interface{}{
"image": image,
"subject_id": subjectID,
"gallery_name": galleryName,
}

// optional parameters
if minHeadScale != "" {
Expand All @@ -53,19 +54,9 @@ func (k *Kairos) Enroll(image, subjectID, galleryName, minHeadScale string, mult
p["multiple_faces"] = multipleFaces
}

b, mErr := json.Marshal(p)
if mErr != nil {
return nil, mErr
}

req, reqErr := k.newRequest("POST", "enroll", b)
if reqErr != nil {
return nil, reqErr
}

resp, doErr := k.do(req)
if doErr != nil {
return nil, doErr
resp, err := k.makeRequest("POST", "enroll", p)
if err != nil {
return nil, err
}

re := &ResponseEnroll{}
Expand Down
9 changes: 9 additions & 0 deletions fixtures/gallery/list_all.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"status": "Complete",
"gallery_ids": [
"MyGallery",
"testgallery1",
"testgallery2",
"testgallery3",
"testgallery4"]
}
4 changes: 4 additions & 0 deletions fixtures/gallery/remove.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"status":"Complete",
"message":"gallery MyGallery was removed"
}
7 changes: 7 additions & 0 deletions fixtures/gallery/remove_error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"Errors": [
{
"Message": "gallery name not found",
"ErrCode": 5004
}]
}
4 changes: 4 additions & 0 deletions fixtures/gallery/remove_subject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"status": "Complete",
"message": "subject id test1 has been successfully removed"
}
7 changes: 7 additions & 0 deletions fixtures/gallery/remove_subject_error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"Errors": [
{
"Message": "gallery name not found",
"ErrCode": 5004
}]
}
4 changes: 4 additions & 0 deletions fixtures/gallery/remove_subject_with_face.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"status": "Complete",
"message": "subject id test1 with face id 58f9034743ab64939482 has been successfully removed"
}
7 changes: 7 additions & 0 deletions fixtures/gallery/view.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"status": "Complete",
"subject_ids": [
"Elizabeth",
"Rachel"
]
}
7 changes: 7 additions & 0 deletions fixtures/gallery/view_error.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"Errors": [
{
"Message": "gallery name not found",
"ErrCode": 5004
}]
}
18 changes: 6 additions & 12 deletions list_galleries_test.go
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
package kairgo_test

import (
"fmt"
"net/http"
"testing"
)

const (
listGalleriesData = ` {"status": "Complete",
"gallery_ids": [
"MyGallery",
"testgallery1",
"testgallery2",
"testgallery3",
"testgallery4"]}`
)

func Test_ListGalleries(t *testing.T) {
setup()
defer teardown()

handleFun := func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "POST")
fmt.Fprint(w, listGalleriesData)
defer r.Body.Close()

err := makeResponse(w, "gallery/list_all.json")
if err != nil {
t.Error(err)
}
}
mux.HandleFunc("/gallery/list_all", handleFun)

Expand Down
19 changes: 5 additions & 14 deletions remove_gallery.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,13 @@ func (k *Kairos) RemoveGallery(galleryName string) (*ResponseRemoveGallery, erro
return nil, fmt.Errorf("galleryName: should be present")
}

p := make(map[string]interface{})
p["gallery_name"] = galleryName

b, mErr := json.Marshal(p)
if mErr != nil {
return nil, mErr
}

req, reqErr := k.newRequest("POST", "gallery/remove", b)
if reqErr != nil {
return nil, reqErr
p := map[string]interface{}{
"gallery_name": galleryName,
}

resp, doErr := k.do(req)
if doErr != nil {
return nil, doErr
resp, err := k.makeRequest("POST", "gallery/remove", p)
if err != nil {
return nil, err
}

re := &ResponseRemoveGallery{}
Expand Down
120 changes: 49 additions & 71 deletions remove_gallery_test.go
Original file line number Diff line number Diff line change
@@ -1,102 +1,80 @@
package kairgo_test

import (
"encoding/json"
"fmt"
"io/ioutil"
"github.com/stretchr/testify/assert"
"net/http"
"testing"
)

const (
removeGalleryExistName = "MyGallery"
removeGalleryWrongName = "wrong_name"
removeGalleriesSuccess = `
{
"status":"Complete",
"message":"gallery MyGallery was removed"
}`

removeGalleriesError = `
{
"Errors": [
{
"Message": "gallery name not found",
"ErrCode": 5004
}]
}
`
)

func handleFuncRmGallery(t *testing.T) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
testMethod(t, r, "POST")
var responsePath string

defer r.Body.Close()
body := make(map[string]interface{})

b, rErr := ioutil.ReadAll(r.Body)
if rErr != nil {
t.Error(rErr)
body, err := requestBody(r.Body)
if err != nil {
t.Error(err)
return
}

uErr := json.Unmarshal(b, &body)
if uErr != nil {
t.Error(rErr)
switch {
case body["gallery_name"] != "MyGallery":
responsePath = "gallery/remove_error.json"
default:
responsePath = "gallery/remove.json"
}

if body["gallery_name"] == removeGalleryExistName {
fmt.Fprint(w, removeGalleriesSuccess)
} else {

fmt.Fprint(w, removeGalleriesError)
err = makeResponse(w, responsePath)
if err != nil {
t.Error(err)
}
}

}

func Test_RemoveGallery_Success(t *testing.T) {
func Test_RemoveGallery(t *testing.T) {
setup()
defer teardown()

mux.HandleFunc("/gallery/remove", handleFuncRmGallery(t))

responseGallery, err := client.RemoveGallery(removeGalleryExistName)
if err != nil {
t.Error(err)
tests := []struct {
galleryName string
subjectID string
status string
errorsCount int
errCode int
errorMessage string
}{
{
galleryName: "MyGallery",
status: "Complete",
errorsCount: 0,
errCode: 0,
errorMessage: "",
},
{
galleryName: "WrongName",
status: "",
errorsCount: 1,
errCode: 5004,
errorMessage: "gallery name not found",
},
}

status := responseGallery.Status

if status != "Complete" {
t.Errorf("Expected '%s', but actual: '%s'", "Complete", status)
}

errorsCount := len(responseGallery.Errors)
if errorsCount != 0 {
t.Errorf("Expected %d, but actual: %d", 0, errorsCount)
}
}

func Test_RemoveGallery_Fail(t *testing.T) {
setup()
defer teardown()

mux.HandleFunc("/gallery/remove", handleFuncRmGallery(t))

responseGallery, err := client.RemoveGallery(removeGalleryWrongName)
if err != nil {
t.Error(err)
}

status := responseGallery.Status

if status != "" {
t.Errorf("Expected '%s', but actual: '%s'", "", status)
for _, test := range tests {
result, err := client.RemoveGallery(test.galleryName)
if err != nil {
t.Error(err)
return
}
assert.Equal(t, test.status, result.Status)
assert.Equal(t, test.errorsCount, len(result.Errors))
if test.errorsCount > 0 {
assert.Equal(t, test.errCode, result.Errors[0].ErrCode)
assert.Equal(t, test.errorMessage, result.Errors[0].Message)
}
}

errorsCount := len(responseGallery.Errors)
if errorsCount == 0 {
t.Errorf("Expected %d, but actual: %d", 1, errorsCount)
}
}
16 changes: 3 additions & 13 deletions remove_subject.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,19 +45,9 @@ func (k *Kairos) RemoveSubject(removeSubjectRequest *RemoveSubjectRequest) (*Res
p["face_id"] = removeSubjectRequest.FaceID
}

b, mErr := json.Marshal(p)
if mErr != nil {
return nil, mErr
}

req, reqErr := k.newRequest("POST", "gallery/remove_subject", b)
if reqErr != nil {
return nil, reqErr
}

resp, doErr := k.do(req)
if doErr != nil {
return nil, doErr
resp, err := k.makeRequest("POST", "gallery/remove_subject", p)
if err != nil {
return nil, err
}

re := &ResponseRemoveSubject{}
Expand Down
Loading

0 comments on commit 3ea1cea

Please sign in to comment.