You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.5 KiB

package api
import (
"testing"
)
func TestDeserializePetJson(t *testing.T) {
jsonData := `
{
"id": 5,
"category": {
"id": 6,
"name": "test_category"
},
"name": "doggie",
"photoUrls": [
"photo_url_test"
],
"tags": [
{
"id": 0,
"name": "test_tags"
}
],
"status": "available"
}
`
petData, err := deserialsePetJson(jsonData)
if err != nil {
t.Error(err.Error())
return
}
if petData.Id != 5 {
t.Errorf("Id was incorrect, got: %d, want: %d", petData.Id, 5)
}
if petData.Name != "doggie" {
t.Errorf("Name was incorrect, got: %s, want: %s", petData.Name, "doggie")
}
if petData.Status != "available" {
t.Errorf("Status was incorrect, got: %s, want: %s", petData.Status, "doggie")
}
if petData.Category.Id != 6 {
t.Errorf("Category Id was incorrect, got: %d, want: %d", petData.Category.Id, 6)
}
if petData.Category.Name != "test_category" {
t.Errorf("Category Name was incorrect, got: %s, want: %s", petData.Category.Name, "test_category")
}
if len(petData.PhotoUrls) != 1 && petData.PhotoUrls[0] != "photo_url_test" {
t.Errorf("PhotoUrls was incorrect, length: %d", len(petData.PhotoUrls))
}
if len(petData.Tags) != 1 && petData.Tags[0].Id != 0 && petData.Tags[0].Name != "test_tags" {
t.Errorf("Tags was incorrect, length: %d", len(petData.Tags))
}
}
func TestDeserializePetJsonFail(t *testing.T) {
jsonData := `
{
"invalid": "data"
}
`
_, err := deserialsePetJson(jsonData)
if err == nil {
t.Error("Invalid data was provided, expected error was not thrown.")
t.Error(err.Error())
}
}