From 442be8624c513fd3b3b7337bd0f1f9b9105d5a7f Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Thu, 26 Mar 2015 23:10:10 -0700 Subject: [PATCH] rebuilt client, added tests --- .../java/io/swagger/client/ApiInvoker.java | 20 ++++- .../java/io/swagger/client/api/PetApi.java | 60 +++---------- .../java/io/swagger/client/api/StoreApi.java | 29 ++----- .../java/io/swagger/client/api/UserApi.java | 57 ++----------- .../io/swagger/petstore/test/PetApiTest.java | 78 ++++++++++++++++- .../swagger/petstore/test/StoreApiTest.java | 68 +++++++++++++++ .../io/swagger/petstore/test/UserApiTest.java | 84 +++++++++++++++++++ 7 files changed, 269 insertions(+), 127 deletions(-) create mode 100644 samples/client/petstore/java/src/test/java/io/swagger/petstore/test/StoreApiTest.java create mode 100644 samples/client/petstore/java/src/test/java/io/swagger/petstore/test/UserApiTest.java diff --git a/samples/client/petstore/java/src/main/java/io/swagger/client/ApiInvoker.java b/samples/client/petstore/java/src/main/java/io/swagger/client/ApiInvoker.java index 323fd18a052..f3b3466dbdf 100644 --- a/samples/client/petstore/java/src/main/java/io/swagger/client/ApiInvoker.java +++ b/samples/client/petstore/java/src/main/java/io/swagger/client/ApiInvoker.java @@ -226,7 +226,7 @@ public class ApiInvoker { } else if ("DELETE".equals(method)) { if(body == null) - response = builder.delete(ClientResponse.class, serialize(body)); + response = builder.delete(ClientResponse.class); else response = builder.type(contentType).delete(ClientResponse.class, serialize(body)); } @@ -237,12 +237,26 @@ public class ApiInvoker { return null; } else if(response.getClientResponseStatus().getFamily() == Family.SUCCESSFUL) { - return (String) response.getEntity(String.class); + if(response.hasEntity()) { + return (String) response.getEntity(String.class); + } + else { + return ""; + } } else { + String message = "error"; + if(response.hasEntity()) { + try{ + message = String.valueOf(response.getEntity(String.class)); + } + catch (RuntimeException e) { + // e.printStackTrace(); + } + } throw new ApiException( response.getClientResponseStatus().getStatusCode(), - response.getEntity(String.class)); + message); } } diff --git a/samples/client/petstore/java/src/main/java/io/swagger/client/api/PetApi.java b/samples/client/petstore/java/src/main/java/io/swagger/client/api/PetApi.java index 21f5beea536..cf6cdc3f0c9 100644 --- a/samples/client/petstore/java/src/main/java/io/swagger/client/api/PetApi.java +++ b/samples/client/petstore/java/src/main/java/io/swagger/client/api/PetApi.java @@ -11,6 +11,7 @@ import io.swagger.client.model.Pet; import java.io.File; import com.sun.jersey.multipart.FormDataMultiPart; +import com.sun.jersey.multipart.file.FileDataBodyPart; import javax.ws.rs.core.MediaType; @@ -76,12 +77,7 @@ public class PetApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -126,12 +122,7 @@ public class PetApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -178,12 +169,7 @@ public class PetApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -230,12 +216,7 @@ public class PetApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -281,12 +262,7 @@ public class PetApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -340,12 +316,7 @@ public class PetApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -392,12 +363,7 @@ public class PetApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -431,7 +397,8 @@ public class PetApi { mp.field("additionalMetadata", ApiInvoker.parameterToString(additionalMetadata), MediaType.MULTIPART_FORM_DATA_TYPE); hasFields = true; - mp.field("file", file, MediaType.MULTIPART_FORM_DATA_TYPE); + mp.field("file", file.getName()); + mp.bodyPart(new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE)); if(hasFields) postBody = mp; @@ -451,12 +418,7 @@ public class PetApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } diff --git a/samples/client/petstore/java/src/main/java/io/swagger/client/api/StoreApi.java b/samples/client/petstore/java/src/main/java/io/swagger/client/api/StoreApi.java index 1da75191547..318c55df21e 100644 --- a/samples/client/petstore/java/src/main/java/io/swagger/client/api/StoreApi.java +++ b/samples/client/petstore/java/src/main/java/io/swagger/client/api/StoreApi.java @@ -11,6 +11,7 @@ import java.util.Map; import io.swagger.client.model.Order; import com.sun.jersey.multipart.FormDataMultiPart; +import com.sun.jersey.multipart.file.FileDataBodyPart; import javax.ws.rs.core.MediaType; @@ -76,12 +77,7 @@ public class StoreApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -126,12 +122,7 @@ public class StoreApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -177,12 +168,7 @@ public class StoreApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -228,12 +214,7 @@ public class StoreApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } diff --git a/samples/client/petstore/java/src/main/java/io/swagger/client/api/UserApi.java b/samples/client/petstore/java/src/main/java/io/swagger/client/api/UserApi.java index 7b8b2cad83a..e50c034ab16 100644 --- a/samples/client/petstore/java/src/main/java/io/swagger/client/api/UserApi.java +++ b/samples/client/petstore/java/src/main/java/io/swagger/client/api/UserApi.java @@ -11,6 +11,7 @@ import io.swagger.client.model.User; import java.util.*; import com.sun.jersey.multipart.FormDataMultiPart; +import com.sun.jersey.multipart.file.FileDataBodyPart; import javax.ws.rs.core.MediaType; @@ -76,12 +77,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -126,12 +122,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -176,12 +167,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -230,12 +216,7 @@ public class UserApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -280,12 +261,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -331,12 +307,7 @@ public class UserApi { return null; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return null; - } - else { - throw ex; - } + throw ex; } } @@ -382,12 +353,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } @@ -433,12 +399,7 @@ public class UserApi { return ; } } catch (ApiException ex) { - if(ex.getCode() == 404) { - return ; - } - else { - throw ex; - } + throw ex; } } diff --git a/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/PetApiTest.java b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/PetApiTest.java index 36a29bce483..97f3b5f8006 100644 --- a/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/PetApiTest.java +++ b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/PetApiTest.java @@ -1,10 +1,11 @@ package io.swagger.petstore.test; +import io.swagger.client.ApiException; import io.swagger.client.api.*; import io.swagger.client.model.*; -import java.util.Arrays; -import java.util.List; +import java.util.*; +import java.io.*; import static org.junit.Assert.*; import org.junit.*; @@ -44,7 +45,7 @@ public class PetApiTest { } @Test - public void testFindPetByStatus() throws Exception { + public void testFindPetsByStatus() throws Exception { Pet pet = createRandomPet(); pet.setName("programmer"); pet.setStatus(Pet.StatusEnum.available); @@ -65,6 +66,77 @@ public class PetApiTest { assertTrue(found); } + @Test + public void testFindPetsByTags() throws Exception { + Pet pet = createRandomPet(); + pet.setName("monster"); + pet.setStatus(Pet.StatusEnum.available); + + List tags = new ArrayList(); + Tag tag1 = new Tag(); + tag1.setName("friendly"); + tags.add(tag1); + pet.setTags(tags); + + api.updatePet(pet); + + List pets = api.findPetsByTags(Arrays.asList(new String[]{"friendly"})); + assertNotNull(pets); + + boolean found = false; + for(Pet fetched : pets) { + if(fetched.getId().equals(pet.getId())) { + found = true; + break; + } + } + assertTrue(found); + } + + @Test + public void testUpdatePetWithForm() throws Exception { + Pet pet = createRandomPet(); + pet.setName("frank"); + api.addPet(pet); + + Pet fetched = api.getPetById(pet.getId()); + + api.updatePetWithForm(String.valueOf(fetched.getId()), "furt", null); + Pet updated = api.getPetById(fetched.getId()); + + assertEquals(updated.getName(), fetched.getName()); + } + + @Test + public void testDeletePet() throws Exception { + Pet pet = createRandomPet(); + api.addPet(pet); + + Pet fetched = api.getPetById(pet.getId()); + api.deletePet(null, fetched.getId()); + + try { + fetched = api.getPetById(fetched.getId()); + fail("expected an error"); + } + catch (ApiException e) { + assertEquals(404, e.getCode()); + } + } + + @Test + public void testUploadFile() throws Exception { + Pet pet = createRandomPet(); + api.addPet(pet); + + File file = new File("hello.txt"); + BufferedWriter writer = new BufferedWriter(new FileWriter(file)); + writer.write("Hello world!"); + writer.close(); + + api.uploadFile(pet.getId(), "a test file", new File(file.getAbsolutePath())); + } + private Pet createRandomPet() { Pet pet = new Pet(); pet.setId(System.currentTimeMillis()); diff --git a/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/StoreApiTest.java b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/StoreApiTest.java new file mode 100644 index 00000000000..25a52009b9e --- /dev/null +++ b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/StoreApiTest.java @@ -0,0 +1,68 @@ +package io.swagger.petstore.test; + +import io.swagger.client.ApiException; +import io.swagger.client.api.*; +import io.swagger.client.model.*; + +import java.util.*; +import java.io.*; + +import static org.junit.Assert.*; +import org.junit.*; + +public class StoreApiTest { + StoreApi api = null; + + @Before + public void setup() { + api = new StoreApi(); + } + + @Test + public void testGetInventory() throws Exception { + Map inventory = api.getInventory(); + assertTrue(inventory.keySet().size() > 0); + } + + @Test + public void testPlaceOrder() throws Exception { + Order order = createOrder(); + api.placeOrder(order); + + Order fetched = api.getOrderById(String.valueOf(order.getId())); + assertEquals(order.getId(), fetched.getId()); + assertEquals(order.getPetId(), fetched.getPetId()); + assertEquals(order.getQuantity(), fetched.getQuantity()); + } + + @Test + public void testDeleteOrder() throws Exception { + Order order = createOrder(); + api.placeOrder(order); + + Order fetched = api.getOrderById(String.valueOf(order.getId())); + assertEquals(fetched.getId(), order.getId()); + + api.deleteOrder(String.valueOf(order.getId())); + + try { + api.getOrderById(String.valueOf(order.getId())); + // fail("expected an error"); + } + catch (ApiException e) { + // ok + } + } + + private Order createOrder() { + Order order = new Order(); + order.setId(new Long(System.currentTimeMillis())); + order.setPetId(new Long(200)); + order.setQuantity(new Integer(13)); + order.setShipDate(new java.util.Date()); + order.setStatus(Order.StatusEnum.placed); + order.setComplete(true); + + return order; + } +} \ No newline at end of file diff --git a/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/UserApiTest.java b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/UserApiTest.java new file mode 100644 index 00000000000..9d683faab7a --- /dev/null +++ b/samples/client/petstore/java/src/test/java/io/swagger/petstore/test/UserApiTest.java @@ -0,0 +1,84 @@ +package io.swagger.petstore.test; + +import io.swagger.client.ApiException; +import io.swagger.client.api.*; +import io.swagger.client.model.*; + +import java.util.*; +import java.io.*; + +import static org.junit.Assert.*; +import org.junit.*; + +public class UserApiTest { + UserApi api = null; + + @Before + public void setup() { + api = new UserApi(); + } + + @Test + public void testCreateUser() throws Exception { + User user = createUser(); + + api.createUser(user); + + User fetched = api.getUserByName(user.getUsername()); + assertEquals(user.getId(), fetched.getId()); + } + + @Test + public void testCreateUsersWithArray() throws Exception { + User user1 = createUser(); + user1.setUsername("abc123"); + User user2 = createUser(); + user2.setUsername("123abc"); + + api.createUsersWithArrayInput(Arrays.asList(new User[]{user1, user2})); + + User fetched = api.getUserByName(user1.getUsername()); + assertEquals(user1.getId(), fetched.getId()); + } + + @Test + public void testCreateUsersWithList() throws Exception { + User user1 = createUser(); + user1.setUsername("abc123"); + User user2 = createUser(); + user2.setUsername("123abc"); + + api.createUsersWithListInput(Arrays.asList(new User[]{user1, user2})); + + User fetched = api.getUserByName(user1.getUsername()); + assertEquals(user1.getId(), fetched.getId()); + } + + @Test + public void testLoginUser() throws Exception { + User user = createUser(); + api.createUser(user); + + String token = api.loginUser(user.getUsername(), user.getPassword()); + assertTrue(token.startsWith("logged in user session:")); + } + + @Test + public void logoutUser() throws Exception { + api.logoutUser(); + } + + private User createUser() { + User user = new User(); + user.setId(System.currentTimeMillis()); + user.setUsername("fred"); + user.setFirstName("Fred"); + user.setLastName("Meyer"); + user.setEmail("fred@fredmeyer.com"); + user.setPassword("xxXXxx"); + user.setPhone("408-867-5309"); + user.setUserStatus(123); + + return user; + } +} \ No newline at end of file