package se.bjurr.prnfb.presentation; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import static se.bjurr.prnfb.settings.PrnfbSettingsDataBuilder.prnfbSettingsDataBuilder; import static se.bjurr.prnfb.settings.USER_LEVEL.ADMIN; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.Mockito; import se.bjurr.prnfb.presentation.dto.SettingsDataDTO; import se.bjurr.prnfb.service.SettingsService; import se.bjurr.prnfb.service.UserCheckService; import se.bjurr.prnfb.settings.PrnfbSettingsData; public class SettingsDataServletTest { @Mock private SettingsService settingsService; private SettingsDataServlet sut; @Mock private UserCheckService userCheckService; @Before public void before() { initMocks(this); when(this.userCheckService.isViewAllowed()) // .thenReturn(true); when(this.userCheckService.isAdminAllowed(Mockito.any())) // .thenReturn(true); this.sut = new SettingsDataServlet(this.userCheckService, this.settingsService); } @Test public void testThatSettingsCanBeRead() throws Exception { SettingsDataDTO expected = new SettingsDataDTO(); expected.setAdminRestriction(ADMIN); expected.setKeyStore("keyStore"); expected.setKeyStorePassword("keyStorePassword"); expected.setKeyStoreType("keyStoreType"); expected.setShouldAcceptAnyCertificate(true); PrnfbSettingsData storedSettings = prnfbSettingsDataBuilder() // .setShouldAcceptAnyCertificate(true) // .setAdminRestriction(ADMIN) // .setKeyStore("keyStore") // .setKeyStorePassword("keyStorePassword") // .setKeyStoreType("keyStoreType") // .build(); when(this.settingsService.getPrnfbSettingsData()) // .thenReturn(storedSettings); SettingsDataDTO actual = (SettingsDataDTO) this.sut.get().getEntity(); assertThat(actual) // .isEqualTo(expected); } @Test public void testThatSettingsCanBeStored() throws Exception { SettingsDataDTO incoming = new SettingsDataDTO(); incoming.setAdminRestriction(ADMIN); incoming.setKeyStore("keyStore"); incoming.setKeyStorePassword("keyStorePassword"); incoming.setKeyStoreType("keyStoreType"); incoming.setShouldAcceptAnyCertificate(true); PrnfbSettingsData storedSettings = prnfbSettingsDataBuilder() // .setShouldAcceptAnyCertificate(true) // .setAdminRestriction(ADMIN) // .setKeyStore("keyStore") // .setKeyStorePassword("keyStorePassword") // .setKeyStoreType("keyStoreType") // .build(); this.sut.post(incoming); verify(this.settingsService) // .setPrnfbSettingsData(eq(storedSettings)); } }