package org.easysoa.galaxydemotest.mock;
import static org.mockito.Mockito.*;
import org.apache.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
import org.ow2.frascati.util.FrascatiException;
import de.daenet.webservices.currencyserver.CurrencyServerWebServiceSoap;
import de.daenet.webservices.currencyserver.CurrencyServerWebServiceSoapSpyWrapper;
import net.server.Delegated;
import fr.inria.galaxy.j1.scenario1.Trip;
/**
* A test working with Galaxy demo trip sample & Mockito
* @author jguillemotte
*
*/
public class GalaxyDemoMockTest extends MockTestHelper {
/** Logger */
private static Logger logger = Logger.getLogger(GalaxyDemoMockTest.class);
/** Mock server */
MockServer server;
@Before
public void setUp() throws Exception {
// Start the travel required mock services
server = new MockServer();
// Start fraSCAti
startFraSCAti();
// Start the Trip mock service
startComposite(COMPOSITE);
}
@SuppressWarnings("unchecked")
@Test
public void test() throws FrascatiException{
// There is only one component in the list
Trip tripService = frascati.getService(componentList.get(0), "Galaxy_System", Trip.class);
// Add a mockito spy on trip service
Trip spyTripService = spy(tripService);
// Invoking trip service
logger.info("Invoking trip service ...");
String tripServiceResponse = spyTripService.process("Drink beer", "I would like a beer", 10);
logger.info("Trip service response : " + tripServiceResponse);
// Add mockito tests to check calls of other services
//verify(((Delegated<CurrencyServerWebServiceSoap>)(server.getCurrencyImplementor())).getDelegate()).getCurrencyValue("3", "EUR", "USD");
verify(server.getCurrencyImplementor().getDelegate()).getCurrencyValue("3", "EUR", "USD");
verify(server.getMeteoImplementor().getDelegate()).getWeather("Grenoble", "France");
verify(server.getTranslateImplementor().getDelegate()).translate("BD061A8446F9FA67F9CD39B278237C98599FAFEA", "I would like a beer", "EN", "FR");
// check that the process method has been called
verify(spyTripService).process("Drink beer", "I would like a beer", 10);
}
}