Skip to content

Commit

Permalink
adding tests for parseManagedObjectReferenceResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
Andyck committed Jul 16, 2020
1 parent 818bc53 commit b0c3f7f
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 1 deletion.
2 changes: 1 addition & 1 deletion inventory/inventoryReferenceApi.go
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ func parseManagedObjectReferenceResponse(body []byte) (*ManagedObjectReference,
return nil, generic.ClientError(fmt.Sprintf("Error while parsing response JSON: %s", err.Error()), "ResponseParser")
}
} else {
return nil, generic.ClientError("Response body was empty", "GetManagedObjectReference")
return nil, generic.ClientError("Response body was empty", "ResponseParser")
}

return &result, nil
Expand Down
57 changes: 57 additions & 0 deletions inventory/inventoryReferenceApi_parseManagedObjectResponse_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package inventory

import (
"fmt"
"github.com/tarent/gomulocity/generic"
"reflect"
"testing"
)

func TestInventoryReferenceApi_ParseManagedObjectResponse(t *testing.T) {
tests := []struct {
name string
givenResponseBody string
expectedManagedObjectReference *ManagedObjectReference
expectedErr *generic.Error
}{
{
name: "parsable body",
givenResponseBody: givenReferenceResponseBody,
expectedManagedObjectReference: expectedManagedObjectReference,
expectedErr: nil,
}, {
name: "unparsable body",
givenResponseBody: `{`,
expectedManagedObjectReference: nil,
expectedErr: &generic.Error{
ErrorType: "ClientError",
Message: "Error while parsing response JSON: unexpected end of JSON input",
Info: "ResponseParser",
},
}, {
name: "without body",
givenResponseBody: ``,
expectedManagedObjectReference: nil,
expectedErr: &generic.Error{
ErrorType: "ClientError",
Message: "Response body was empty",
Info: "ResponseParser",
},
},
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {

managedObject, err := parseManagedObjectReferenceResponse([]byte(tt.givenResponseBody))

if fmt.Sprint(err) != fmt.Sprint(tt.expectedErr) {
t.Fatalf("Unexpected error was returned: %s\nExpected: %s", err, tt.expectedErr)
}

if !reflect.DeepEqual(managedObject, tt.expectedManagedObjectReference) {
t.Errorf("Unexpected managedObject was returned: %#v\nExpected: %#v", managedObject, tt.expectedManagedObjectReference)
}
})
}
}

0 comments on commit b0c3f7f

Please sign in to comment.