Package ro.isdc.wro.cache.factory

Source Code of ro.isdc.wro.cache.factory.TestDefaultCacheKeyFactory

package ro.isdc.wro.cache.factory;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mock;

import ro.isdc.wro.cache.CacheKey;
import ro.isdc.wro.config.Context;
import ro.isdc.wro.manager.factory.BaseWroManagerFactory;
import ro.isdc.wro.manager.factory.WroManagerFactory;
import ro.isdc.wro.model.group.GroupExtractor;
import ro.isdc.wro.model.group.processor.InjectorBuilder;
import ro.isdc.wro.model.resource.ResourceType;


/**
* @author Alex Objelean
*/
public class TestDefaultCacheKeyFactory {
  @Mock
  private HttpServletRequest mockRequest;
  @Mock
  private GroupExtractor mockGroupExtractor;
  private DefaultCacheKeyFactory victim;
 
  @BeforeClass
  public static void onBeforeClass() {
    assertEquals(0, Context.countActive());
  }
 
  @AfterClass
  public static void onAfterClass() {
    assertEquals(0, Context.countActive());
  }
 
  @Before
  public void setUp() {
    initMocks(this);
    Context.set(Context.standaloneContext());
    victim = new DefaultCacheKeyFactory();
    final WroManagerFactory managerFactory = new BaseWroManagerFactory().setGroupExtractor(mockGroupExtractor);
    InjectorBuilder.create(managerFactory).build().inject(victim);
  }
 
  @After
  public void tearDown() {
    Context.unset();
  }
 
  @Test
  public void shouldHaveMinimizeEnabledByDefault() {
    assertEquals(true, Context.get().getConfig().isMinimizeEnabled());
  }
 
  @Test(expected = NullPointerException.class)
  public void cannotBuildCacheKeyFromNullRequest() {
    victim.create(null);
  }
 
  @Test
  public void shouldCreateNullCacheKeyWhenRequestDoesNotContainEnoughInfo() {
    assertNull(victim.create(mockRequest));
  }
 
  @Test
  public void shouldCreateNullCacheKeyWhenRequestDoesNotContainResourceType() {
    when(mockGroupExtractor.getGroupName(mockRequest)).thenReturn("g1");
    when(mockGroupExtractor.getResourceType(mockRequest)).thenReturn(null);
    assertNull(victim.create(mockRequest));
  }
 
  @Test
  public void shouldCreateNullCacheKeyWhenRequestDoesNotGroupName() {
    when(mockGroupExtractor.getGroupName(mockRequest)).thenReturn(null);
    when(mockGroupExtractor.getResourceType(mockRequest)).thenReturn(ResourceType.CSS);
    assertNull(victim.create(mockRequest));
  }
 
  @Test
  public void shouldCreateValidCacheKeyWhenRequestContainsAllRequiredInfo() {
    when(mockGroupExtractor.isMinimized(mockRequest)).thenReturn(true);
    when(mockGroupExtractor.getGroupName(mockRequest)).thenReturn("g1");
    when(mockGroupExtractor.getResourceType(mockRequest)).thenReturn(ResourceType.CSS);
    assertEquals(new CacheKey("g1", ResourceType.CSS, true), victim.create(mockRequest));
  }
 
  @Test
  public void shouldHaveMinimizationTurnedOffWhenMinimizeEnabledIsFalse()
      throws IOException {
    when(mockGroupExtractor.isMinimized(mockRequest)).thenReturn(true);
    when(mockGroupExtractor.getGroupName(mockRequest)).thenReturn("g1");
    when(mockGroupExtractor.getResourceType(mockRequest)).thenReturn(ResourceType.CSS);
    Context.get().getConfig().setMinimizeEnabled(false);
    assertEquals(new CacheKey("g1", ResourceType.CSS, false), victim.create(mockRequest));
  }
}
TOP

Related Classes of ro.isdc.wro.cache.factory.TestDefaultCacheKeyFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.