package de.epages.ws.user3; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.GregorianCalendar; import org.junit.Before; import org.junit.Test; import de.epages.ws.ShopWebServiceTestConfiguration; import de.epages.ws.common.model.TAttribute; import de.epages.ws.shop2.model.TAddressNamed; import de.epages.ws.user2.model.TCreate_Input; import de.epages.ws.user2.model.TCreate_Return; import de.epages.ws.user2.model.TDelete_Return; import de.epages.ws.user2.model.TExists_Return; import de.epages.ws.user2.model.TGetInfo_Return; import de.epages.ws.user2.model.TUpdate_Input; import de.epages.ws.user2.model.TUpdate_Return; public class UserServiceTest { private static final UserServiceClientImpl userService = new UserServiceClientImpl(new ShopWebServiceTestConfiguration()); private TCreate_Input user_in = new TCreate_Input(); private TUpdate_Input user_update = new TUpdate_Input(); private String userpath = "Users/"; private String alias = "java_test-1"; private String path = userpath + alias; private String email = "java_test-1@epages.de"; /** * Sets all the required prerequisites for the tests. Will be called before * the test are run. */ @Before public void setUp() { // test data user_in user_in.setAlias(alias); user_in.setPassword("epages"); user_in.setName("Klaus Klaussen"); user_in.setEMail(email); TAddressNamed address1 = new TAddressNamed(); address1.setAlias("Adresse1"); address1.setEMail(email); address1.setFirstName("Klaus"); address1.setLastName("Klaussen"); address1.setStreet("Musterstraße 2"); address1.setStreet2("Ortsteil Niederfingeln"); address1.setBirthday(new GregorianCalendar(1976, 9, 25, 11, 33)); TAddressNamed address2 = new TAddressNamed(); address2.setAlias("zweite Adresse"); address2.setEMail(email); address2.setFirstName("Klaus2"); address2.setLastName("Klaussen2"); address2.setStreet("Musterstraße 2b"); address2.setStreet2("Ortsteil Niederfingeln"); TAddressNamed address3 = new TAddressNamed(); address3.setAlias("Adresse Nummero III"); address3.setEMail(email); address3.setFirstName("Klaus3"); address3.setLastName("Klaussen3"); address3.setStreet("Musterstraße 3"); address3.setStreet2("Ortsteil Niederfingeln"); user_in.setBillingAddress(address1); user_in.setShippingAddress(address1); user_in.setAdditionalAddresses(new TAddressNamed[] { address2, address3 }); TAttribute custAttr = new TAttribute(); custAttr.setName("ChallengePhrase"); custAttr.setValue("my challenge phrase"); user_in.setAttributes(new TAttribute[] { custAttr }); // test data user_update user_update.setPath(path); TAddressNamed address4 = new TAddressNamed(); address4.setFirstName("Hans"); address4.setLastName("Hanssen"); address4.setStreet("Musterstraße 2b"); address4.setStreet2("Ortsteil Oberfingeln"); TAttribute addrAttr1 = new TAttribute(); addrAttr1.setName("JobTitle"); addrAttr1.setValue("best Job"); TAttribute addrAttr2 = new TAttribute(); addrAttr2.setName("Salutation"); addrAttr2.setValue("Dr."); address4.setAttributes(new TAttribute[] { addrAttr1, addrAttr2 }); user_update.setBillingAddress(address4); TAttribute custAttr2 = new TAttribute(); custAttr2.setName("ChallengePhrase"); custAttr2.setValue("my updated challenge phrase"); user_update.setAttributes(new TAttribute[] { custAttr2 }); // delete the test user if it exists TExists_Return[] ret = userService.exists(new String[] { path }); if (ret[0].getExists()) { userService.delete(new String[] { path }); } } /** * Create a user and check if the creation was successful */ public void testCreate() { TCreate_Return[] users_out = userService.create(new TCreate_Input[] { user_in }); // test if creation was successful assertEquals("create result set", 1, users_out.length); assertTrue("created?", users_out[0].getCreated()); } /** * Update a user and check if the update was successful */ public void testUpdate() { TUpdate_Return[] users_out = userService.update(new TUpdate_Input[] { user_update }); // test if update was successful assertEquals("create result set", 1, users_out.length); assertTrue("updated?", users_out[0].getUpdated()); } /** * Delete a user and check if no error occured. */ public void testDelete() { TDelete_Return[] users_out = userService.delete(new String[] { path }); // test if update was successful assertEquals("create result set", 1, users_out.length); assertTrue("deleted?", users_out[0].getDeleted()); } /** * Retrieve information about an user. Check if the returned data are equal * to the data of create or update call * * @param isAlreadyUpdated * if true check against update data, else against create data */ public void testGetInfo() { testGetInfo(""); } public void testGetInfo(String testUpdated) { boolean isAlreadyUpdated = testUpdated.equalsIgnoreCase("updated"); TGetInfo_Return[] users_out = userService.getInfo(new String[] { path }, new String[] { "ChallengePhrase" }, new String[] { "JobTitle", "Salutation" }); // test if getinfo was successful and if all data are equal to input assertEquals("getinfo result set", 1, users_out.length); // define vars for easy access TGetInfo_Return user_out = users_out[0]; TAttribute[] attr_out = user_out.getAttributes(); TAttribute[] attr_in = user_in.getAttributes(); TAddressNamed bill_out = user_out.getBillingAddress(); TAddressNamed bill_in = user_in.getBillingAddress(); // TAttribute[] addrAttr_out = bill_out.getAttributes(); // TAttribute[] addrAttr_in = bill_in.getAttributes(); if (isAlreadyUpdated) { attr_in = user_update.getAttributes(); bill_in = user_update.getBillingAddress(); } // check updated/created data assertEquals("ChallengePhrase", attr_in[0].getValue(), attr_out[0].getValue()); assertEquals("FirstName", bill_in.getFirstName(), bill_out.getFirstName()); assertEquals("LastName", bill_in.getLastName(), bill_out.getLastName()); assertEquals("Street", bill_in.getStreet(), bill_out.getStreet()); assertEquals("Street2", bill_in.getStreet2(), bill_out.getStreet2()); } /** * Test if a user exists or not * * @param expected * if false the Test will be successful if the user does NOT * exist */ public void testExists() { testExists(true); } public void testExists(boolean expected) { TExists_Return[] users_out = userService.exists(new String[] { path }); // test if exists check was successful assertEquals("exists result set", 1, users_out.length); assertEquals("exists?", expected, users_out[0].getExists()); } /** * runs all tests */ @Test public void testAll() { testCreate(); testExists(); testGetInfo(); testUpdate(); testGetInfo("updated"); testDelete(); testExists(false); } }