package org.jboss.seam.remoting.examples.model.ftest;
import java.net.URL;
import org.jboss.arquillian.ajocado.framework.AjaxSelenium;
import org.jboss.arquillian.ajocado.utils.URLUtils;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(Arquillian.class)
public class AddressTest extends AbstractTest {
private ModelPage page;
@Drone
AjaxSelenium selenium;
@ArquillianResource
URL contextPath;
@Before
public void init() {
page = new ModelPage(selenium, URLUtils.buildUrl(contextPath, MAIN_PAGE));
}
@Test
public void testAddressDetails() {
page.selectPerson("Shane Bryzak").loadAddresses();
ModelPage.Address address1 = page.getAddress(0);
assertEquals(address1.getStreetNumber(), "100");
assertEquals(address1.getStreetName(), "Main");
assertEquals(address1.getSuburb(), "Pleasantville");
assertEquals(address1.getCountry(), "Australia");
assertEquals(address1.getPostcode(), "32123");
ModelPage.Address address2 = page.getAddress(1);
assertEquals(address2.getStreetNumber(), "57");
assertEquals(address2.getStreetName(), "1st Avenue");
assertEquals(address2.getPostcode(), "32411");
assertEquals(address2.getSuburb(), "Pittsville");
assertEquals(address2.getCountry(), "Australia");
// update address
page.selectPerson("Shane Bryzak").loadAddresses();
ModelPage.Address newAddress = page.getAddress(0);
newAddress.setStreetNumber("1000");
newAddress.setStreetName("Amber");
newAddress.setPostcode("54321");
newAddress.setSuburb("FooBar Drive");
newAddress.setCountry("USA");
page.applyChanges();
// reload the page
page.selectPerson("Shane Bryzak").loadAddresses();
ModelPage.Address savedAddress = page.getAddress(0);
assertEquals("Address not updated.", savedAddress.getStreetNumber(), "1000");
assertEquals(savedAddress.getStreetName(), "Amber");
assertEquals(savedAddress.getPostcode(), "54321");
assertEquals(savedAddress.getSuburb(), "FooBar Drive");
assertEquals(savedAddress.getCountry(), "USA");
}
@Test
public void testAddingNewAddress() {
page.selectPerson("Shane Bryzak").loadAddresses();
page.createAddress();
ModelPage.Address newAddress = page.getAddress(2);
newAddress.setStreetNumber("1001");
newAddress.setStreetName("Foo");
newAddress.setPostcode("12345");
newAddress.setSuburb("Bar");
newAddress.setCountry("Spain");
page.applyChanges();
// reload the page
page.selectPerson("Shane Bryzak").loadAddresses();
ModelPage.Address savedAddress = page.getAddress(2);
assertEquals(savedAddress.getStreetNumber(), "1001");
assertEquals(savedAddress.getStreetName(), "Foo");
assertEquals(savedAddress.getPostcode(), "12345");
assertEquals(savedAddress.getSuburb(), "Bar");
assertEquals(savedAddress.getCountry(), "Spain");
}
@Test
public void testRemovingAddress() {
page.selectPerson("Jozef Hartinger").loadAddresses();
page.getAddress(0).delete();
page.applyChanges();
// reload the page
page.selectPerson("Jozef Hartinger").loadAddresses();
assertEquals("Address not removed.", page.getAddressCount(), 0);
}
}