package org.javaee7.jaxws.endpoint;
import static org.junit.Assert.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import org.javaee7.jaxws.endpoint.EBook;
import org.javaee7.jaxws.endpoint.EBookStore;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Before;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
/**
* @author Fermin Gallego
*/
@RunWith(Arquillian.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class EBookStoreTest {
private static Service eBookStoreService;
/**
* Arquillian specific method for creating a file which can be deployed
* while executing the test.
*
* @return a war file
*/
@Deployment(testable = false)
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class).
addPackage("org.javaee7.jaxws.endpoint");
}
@ArquillianResource
private URL url;
@Before
public void setupClass() throws MalformedURLException {
eBookStoreService = Service.create(
new URL(url, "EBookStoreImplService?wsdl"),
new QName("http://endpoint.jaxws.javaee7.org/", "EBookStoreImplService"));
}
@Test
public void test1WelcomeMessage() throws MalformedURLException {
EBookStore eBookStore = eBookStoreService.getPort(EBookStore.class);
String response=eBookStore.welcomeMessage("Johnson");
assertEquals("Welcome to EBookStore WebService, Mr/Mrs Johnson", response);
}
@Test
public void test2SaveAndTakeBook() throws MalformedURLException {
EBookStore eBookStore = eBookStoreService.getPort(EBookStore.class);
EBook eBook=new EBook();
eBook.setTitle("The Lord of the Rings");
eBook.setNumPages(1178);
eBook.setPrice(21.8);
eBookStore.saveBook(eBook);
eBook=new EBook();
eBook.setTitle("Oliver Twist");
eBook.setNumPages(268);
eBook.setPrice(7.45);
eBookStore.saveBook(eBook);
EBook response=eBookStore.takeBook("Oliver Twist");
assertEquals(eBook.getNumPages(),response.getNumPages());
}
@Test
public void test3FindEbooks(){
EBookStore eBookStore = eBookStoreService.getPort(EBookStore.class);
List<String> titleList=eBookStore.findEBooks("Rings");
assertNotNull(titleList);
assertEquals(1, titleList.size());
assertEquals("The Lord of the Rings",titleList.get(0));
}
@Test
public void test4AddAppendix(){
EBookStore eBookStore = eBookStoreService.getPort(EBookStore.class);
EBook eBook=eBookStore.takeBook("Oliver Twist");
assertEquals(268,eBook.getNumPages());
EBook eBookResponse=eBookStore.addAppendix(eBook, 5);
assertEquals(268,eBook.getNumPages());
assertEquals(273,eBookResponse.getNumPages());
}
}