@Test public void cacheShouldBeClearedAfterModelReload() throws IOException { final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); final HttpServletResponse response = Mockito.mock(HttpServletResponse.class, Mockito.RETURNS_DEEP_STUBS); Mockito.when(request.getRequestURI()).thenReturn("/app/g3.css"); final WroConfiguration config = new WroConfiguration(); config.setDebug(true); config.setDisableCache(false); Context.set(Context.webContext(request, response, Mockito.mock(FilterConfig.class))); final WroManager wroManager = managerFactory.create(); wroManager.process(); // use original decorated object because the decorated one trigger the processing for each cache // lookup. final CacheStrategy<CacheEntry, ContentHashEntry> cacheStrategy = AbstractDecorator.getOriginalDecoratedObject(wroManager.getCacheStrategy()); Assert.assertNotNull(cacheStrategy.get(new CacheEntry("g3", ResourceType.CSS, true))); final ReloadModelRunnable reloadModelRunnable = new ReloadModelRunnable(wroManager); reloadModelRunnable.run(); Assert.assertNull(cacheStrategy.get(new CacheEntry("g3", ResourceType.CSS, true))); }
@Test public void shouldRegisterCallback() { final WroManager manager = new WroManager(); LifecycleCallback mockCallback = Mockito.mock(LifecycleCallback.class); manager.registerCallback(mockCallback); manager.getCallbackRegistry().onProcessingComplete(); Mockito.verify(mockCallback, Mockito.atLeastOnce()).onProcessingComplete(); }
@Test public void testMD5Fingerprint() throws Exception { WroManagerFactory factory = new InjectableWroManagerFactoryDecorator( new BaseWroManagerFactory() .setModelFactory(getValidModelFactory()) .setHashBuilder(new MD5HashStrategy())); final WroManager manager = factory.create(); final String path = manager.encodeVersionIntoGroupPath("g3", ResourceType.CSS, true); Assert.assertEquals("42b98f2980dc1366cf1d2677d4891eda/g3.css?minimize=true", path); }
@Test public void testSHA1DefaultHashBuilder() throws Exception { final WroManager manager = managerFactory.create(); final String path = manager.encodeVersionIntoGroupPath("g3", ResourceType.CSS, true); Assert.assertEquals("51e6de8dde498cb0bf082b2cd80323fca19eef5/g3.css?minimize=true", path); }
@Test public void shouldClearAuthorizationManagerWhenModelPeriodChanged() { victim.onModelPeriodChanged(1); verify(mockAuthorizationManager, atLeastOnce()).clear(); }
@Test(expected = NullPointerException.class) public void cannotRegisterNullCallback() { WroManager manager = new WroManager(); manager.registerCallback(null); }