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());
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 }