@Test public void testPluginCallsServeForRightPlugin() { BasePlugin bp1 = createBasePlugin("/f1"); BasePlugin bp2 = createBasePlugin("/f2"); AggregateMimePlugin aggregateMimePlugin = new AggregateMimePlugin(bp1, bp2); String uri = "/f1"; Map<String, String> headers = mock(Map.class); NanoHTTPD.IHTTPSession session = mock(NanoHTTPD.IHTTPSession.class); File f = mock(File.class); String mime = HttpTools.MimeType.APP_JSON; aggregateMimePlugin.serveFile(uri, headers, session, f, mime); verify(bp1, times(1)).serveFile(uri, headers, session, f, mime); String uri2 = "/f2"; Map<String, String> headers2 = mock(Map.class); NanoHTTPD.IHTTPSession session2 = mock(NanoHTTPD.IHTTPSession.class); File f2 = mock(File.class); String mime2 = HttpTools.MimeType.APP_JSON; aggregateMimePlugin.serveFile(uri2, headers2, session2, f2, mime2); verify(bp1, times(1)).serveFile(uri, headers, session, f, mime); verify(bp2, times(1)).serveFile(uri2, headers2, session2, f2, mime2); }
@Test(expected = IllegalStateException.class) public void testPluginChecksSameMimesNegative() { BasePlugin bp1 = createBasePlugin("/f1"); BasePlugin bp2 = createBasePlugin(HttpTools.MimeType.APP_OCTET, "/f2"); AggregateMimePlugin aggregateMimePlugin = new AggregateMimePlugin(bp1, bp2); assertEquals(HttpTools.MimeType.APP_JSON, aggregateMimePlugin.mimeType()); }
@Test public void testPluginChecksSameMimesPositive() { BasePlugin bp1 = createBasePlugin("/f1"); BasePlugin bp2 = createBasePlugin("/f2"); AggregateMimePlugin aggregateMimePlugin = new AggregateMimePlugin(bp1, bp2); assertEquals(HttpTools.MimeType.APP_JSON, aggregateMimePlugin.mimeType()); }
@Test public void testPluginSelectsRightPlugin() { BasePlugin bp1 = createBasePlugin("/f1"); BasePlugin bp2 = createBasePlugin("/f2"); AggregateMimePlugin aggregateMimePlugin = new AggregateMimePlugin(bp1, bp2); assertNull(aggregateMimePlugin.getServeCandidate("/f3", null)); assertTrue(bp1 == aggregateMimePlugin.getServeCandidate("/f1", null)); assertTrue(bp2 == aggregateMimePlugin.getServeCandidate("/f2", null)); }
@Test public void testPluginMergesFiles() { BasePlugin bp1 = createBasePlugin("/f1"); BasePlugin bp2 = createBasePlugin("/f2"); AggregateMimePlugin aggregateMimePlugin = new AggregateMimePlugin(bp1, bp2); String[] files = aggregateMimePlugin.files(); Arrays.sort(files); assertArrayEquals(new String[] {"/f1", "/f2"}, files); }