package de.flower.rmt.test;
import de.flower.common.test.wicket.AbstractWicketMockitoTests;
import de.flower.common.test.wicket.MockitoFactoryApplicationContext;
import de.flower.common.test.wicket.WicketTester;
import de.flower.rmt.model.db.entity.User;
import de.flower.rmt.security.ISecurityService;
import de.flower.rmt.security.UserDetailsBean;
import de.flower.rmt.ui.app.TestRMTApplication;
import org.apache.wicket.protocol.http.WebApplication;
import org.testng.annotations.BeforeMethod;
import static org.mockito.Mockito.when;
/**
* Base class for ui-only tests. All dependencies are mocked.
* Inits security context with test-user.
*
* @author flowerrrr
*/
public abstract class AbstractRMTWicketMockitoTests extends AbstractWicketMockitoTests {
protected TestData testData = new TestData();
@Override
protected WicketTester createWicketTester(final MockitoFactoryApplicationContext mockCtx) {
WebApplication webApp = new TestRMTApplication(mockCtx);
WicketTester wicketTester = new WicketTester(webApp);
wicketTester.setSerializationCheck(false);
return wicketTester;
}
@BeforeMethod
public final void initSecurityService() {
ISecurityService securityService = mockCtx.getMock(ISecurityService.class);
User user = testData.newUser();
when(securityService.getUser()).thenReturn(user);
UserDetailsBean userDetails = new UserDetailsBean(user);
when(securityService.getCurrentUser()).thenReturn(userDetails);
}
}