package org.molgenis.dataexplorer; import org.mockito.InjectMocks; import org.mockito.Mock; import org.molgenis.data.DataService; import org.molgenis.data.MolgenisDataAccessException; import org.molgenis.data.i18n.LanguageService; import org.molgenis.data.settings.AppSettings; import org.molgenis.data.support.GenomicDataSettings; import org.molgenis.dataexplorer.controller.DataExplorerController; import org.molgenis.dataexplorer.settings.DataExplorerSettings; import org.molgenis.security.core.MolgenisPermissionService; import org.molgenis.security.core.Permission; import org.molgenis.ui.menumanager.MenuManagerService; import org.molgenis.util.GsonConfig; import org.molgenis.util.GsonHttpMessageConverter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.ui.Model; import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; import static org.testng.Assert.assertEquals; @WebAppConfiguration @ContextConfiguration(classes = { GsonConfig.class }) public class DataExplorerControllerTest extends AbstractTestNGSpringContextTests { @InjectMocks private DataExplorerController controller = new DataExplorerController(); @Mock public AppSettings appSettings; @Mock DataExplorerSettings dataExplorerSettings; @Mock GenomicDataSettings genomicDataSettings; @Mock DataService dataService; @Mock FreeMarkerConfigurer freemarkerConfigurer; @Mock MenuManagerService menuManager; @Mock LanguageService languageService; @Mock MolgenisPermissionService molgenisPermissionService = mock(MolgenisPermissionService.class); @Autowired private GsonHttpMessageConverter gsonHttpMessageConverter; private MockMvc mockMvc; @BeforeMethod public void beforeTest() { initMocks(this); when(molgenisPermissionService.hasPermissionOnEntity("yes", Permission.WRITEMETA)).thenReturn(true); when(molgenisPermissionService.hasPermissionOnEntity("no", Permission.WRITEMETA)).thenReturn(false); mockMvc = MockMvcBuilders.standaloneSetup(controller).setMessageConverters(gsonHttpMessageConverter).build(); } @Test public void getAnnotatorModuleSuccess() throws Exception { assertEquals("view-dataexplorer-mod-" + DataExplorerController.MOD_ANNOTATORS, controller.getModule(DataExplorerController.MOD_ANNOTATORS, "yes", mock(Model.class))); } @Test(expectedExceptions = MolgenisDataAccessException.class) public void getAnnotatorModuleFail() throws Exception { controller.getModule(DataExplorerController.MOD_ANNOTATORS, "no", mock(Model.class)); } }