package com.ttdev.wicketpagetest.sample.cdi;
import org.testng.annotations.Test;
import com.ttdev.wicketpagetest.ChangeResistantMockFactory;
import com.ttdev.wicketpagetest.MockableCDIBeanInjector;
import com.ttdev.wicketpagetest.WebPageTestContext;
import com.ttdev.wicketpagetest.WicketSeleniumDriver;
public class GreetingPageTest {
private ChangeResistantMockFactory factory = new ChangeResistantMockFactory(
this);
abstract class MockedGreetingService implements GreetingService {
@Override
public String getSubject() {
return "M";
}
}
abstract class MockedUpperCaseService implements UpperCaseService {
@Override
public String upperCase(String s) {
return s;
}
}
@Test
public void testMockCDIInjection() {
MockableCDIBeanInjector.mockBean("greetingService",
factory.implementAbstractMethods(MockedGreetingService.class));
MockableCDIBeanInjector.mockBean("upperCaseService",
factory.implementAbstractMethods(MockedUpperCaseService.class));
WicketSeleniumDriver ws = WebPageTestContext.getWicketSelenium();
ws.openBookmarkablePage(GreetingPage.class);
assert ws.getText("//subject").equals("m");
assert ws.getText("//name").equals("n") : ws.getText("//name");
}
}