Assert.assertThat(allCategories, Matchers.contains("categoryA","categoryD","categoryB", "categoryC", "categoryE"));
}
@Test
public void testComplexCssAndJsHierarchy() {
ClientLibrary clientLibraryA = new MockClientLibraryBuilder("categoryA").getClientLibrary();
ClientLibrary clientLibraryB = new MockClientLibraryBuilder("categoryB").setDependentLibraries(clientLibraryA).getClientLibrary();
ClientLibrary clientLibraryC = new MockClientLibraryBuilder("categoryC").setDependentLibraries(clientLibraryB).getClientLibrary();
ClientLibrary clientLibraryD = new MockClientLibraryBuilder("categoryD").setEmbeddedCssLibraries(clientLibraryA).getClientLibrary();
ClientLibrary clientLibraryE = new MockClientLibraryBuilder("categoryE").setDependentLibraries(clientLibraryD).setEmbeddedJsLibraries(clientLibraryC).getClientLibrary();
List<String> allCategories = new ArrayList<String>();
ClientLibOptimizerServlet.getSortedDependentCategories(Collections.singleton(clientLibraryE), Collections.singleton("categoryE"), LibraryType.JS, allCategories);
Assert.assertThat(allCategories, Matchers.contains("categoryD", "categoryA","categoryB", "categoryC", "categoryE"));