View Javadoc

1   package com.atlassian.plugin.webresource;
2   
3   import static org.junit.Assert.assertEquals;
4   import static org.junit.Assert.assertFalse;
5   import static org.junit.Assert.assertTrue;
6   
7   import java.util.ArrayList;
8   import java.util.Collections;
9   import java.util.HashSet;
10  import java.util.Iterator;
11  import java.util.List;
12  import java.util.Set;
13  
14  import org.junit.Before;
15  import org.junit.Test;
16  
17  import com.atlassian.plugin.Plugin;
18  
19  public class TestContextBatch
20  {
21      private Plugin testPlugin;
22      
23      @Before
24      public void setUp() throws Exception
25      {
26          testPlugin = TestUtils.createTestPlugin();
27      }
28      
29      @Test
30      public void testBuildPluginResources()
31      {
32          List<WebResourceModuleDescriptor> moduleDescriptors = new ArrayList<WebResourceModuleDescriptor>(3);
33          moduleDescriptors.add(TestUtils.createWebResourceModuleDescriptor("a.b.c:d", testPlugin));
34          moduleDescriptors.add(TestUtils.createWebResourceModuleDescriptor("a.b.c:e", testPlugin));
35          moduleDescriptors.add(TestUtils.createWebResourceModuleDescriptor("f.g.h:i", testPlugin));
36          
37          List<PluginResourceBatchParams> resourceParams = new ArrayList<PluginResourceBatchParams>(2);
38          resourceParams.add(new PluginResourceBatchParams("js", Collections.<String,String>emptyMap()));
39          resourceParams.add(new PluginResourceBatchParams("css", Collections.singletonMap("ieonly", "true")));
40                  
41          ContextBatch contextBatch = new ContextBatch("key", Collections.singletonList("includedContext"), Collections.singletonList("excludedContext"),
42                  moduleDescriptors, resourceParams);
43          
44          Iterable<PluginResource> buildPluginResources = contextBatch.buildPluginResources();
45          
46          Iterator<PluginResource> iterator = buildPluginResources.iterator();
47          
48          assertTrue(iterator.hasNext());
49          PluginResource resource1 = iterator.next();
50          assertTrue(iterator.hasNext());
51          PluginResource resource2 = iterator.next();
52          assertFalse(iterator.hasNext()); // basically just enforcing we have 2 ContextBatchPluginResource
53          
54          Set<BatchedWebResourceDescriptor> expectedDescriptors = new HashSet<BatchedWebResourceDescriptor>(3);
55          expectedDescriptors.add(new BatchedWebResourceDescriptor("1", "a.b.c:d"));
56          expectedDescriptors.add(new BatchedWebResourceDescriptor("1", "a.b.c:e"));
57          expectedDescriptors.add(new BatchedWebResourceDescriptor("1", "f.g.h:i"));
58  
59          assertTrue(resource1 instanceof ContextBatchPluginResource);
60          Set<BatchedWebResourceDescriptor> batchedWebResourceDescriptors = ((ContextBatchPluginResource)resource1).getBatchedWebResourceDescriptors();
61          assertEquals(expectedDescriptors, batchedWebResourceDescriptors);
62  
63          batchedWebResourceDescriptors = ((ContextBatchPluginResource)resource2).getBatchedWebResourceDescriptors();
64          assertEquals(expectedDescriptors, batchedWebResourceDescriptors);
65      }    
66  }