package org.molgenis.ui;
import org.molgenis.data.i18n.LanguageService;
import org.molgenis.data.settings.AppSettings;
import org.molgenis.util.ResourceFingerprintRegistry;
import org.springframework.web.servlet.ModelAndView;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
public class MolgenisInterceptorTest
{
private ResourceFingerprintRegistry resourceFingerprintRegistry;
private AppSettings appSettings;
private LanguageService languageService;
@BeforeMethod
public void setUp()
{
resourceFingerprintRegistry = mock(ResourceFingerprintRegistry.class);
appSettings = when(mock(AppSettings.class).getLanguageCode()).thenReturn("en").getMock();
languageService = mock(LanguageService.class);
}
@Test(expectedExceptions = NullPointerException.class)
public void MolgenisInterceptor()
{
new MolgenisInterceptor(null, null, null, null);
}
@Test
public void postHandle() throws Exception
{
String environment = "development";
MolgenisInterceptor molgenisInterceptor = new MolgenisInterceptor(resourceFingerprintRegistry, appSettings,
languageService, environment);
HttpServletRequest request = mock(HttpServletRequest.class);
HttpServletResponse response = mock(HttpServletResponse.class);
Object handler = mock(Object.class);
ModelAndView modelAndView = new ModelAndView();
molgenisInterceptor.postHandle(request, response, handler, modelAndView);
Map<String, Object> model = modelAndView.getModel();
assertEquals(model.get(MolgenisPluginAttributes.KEY_RESOURCE_FINGERPRINT_REGISTRY),
resourceFingerprintRegistry);
assertEquals(model.get(MolgenisPluginAttributes.KEY_APP_SETTINGS), appSettings);
assertEquals(model.get(MolgenisPluginAttributes.KEY_ENVIRONMENT), environment);
assertTrue(model.containsKey(MolgenisPluginAttributes.KEY_I18N));
}
}