package org.odata4j.test.unit.format.xml; import java.io.InputStream; import java.io.InputStreamReader; import java.util.List; import junit.framework.Assert; import org.core4j.Enumerable; import org.junit.Test; import org.odata4j.format.xml.AtomServiceDocumentFormatParser; import org.odata4j.format.xml.AtomWorkspaceInfo; import org.odata4j.stax2.XMLEventReader2; import org.odata4j.stax2.domimpl.DomXMLFactoryProvider2; public class MultipleWorkspacesTest { @Test public void multipleWorkspacesTest() { List<AtomWorkspaceInfo> workspaces = parseWorkspaces("DEMO_FLIGHT.xml"); Assert.assertEquals(2, workspaces.size()); assertWorkspaceStructure(workspaces, 0, "Things"); assertWorkspaceStructure(workspaces, 1, "Data", "flightDataCollection", "zDemoFlightCollection"); workspaces = parseWorkspaces("DEMO_BANK.xml"); Assert.assertEquals(2, workspaces.size()); assertWorkspaceStructure(workspaces, 0, "Things"); assertWorkspaceStructure(workspaces, 1, "Data", "zDemoBankCollection"); } private void assertWorkspaceStructure(List<AtomWorkspaceInfo> workspaces, int index, String title, String... collections) { Assert.assertNotNull(workspaces); AtomWorkspaceInfo workspace = workspaces.get(index); Assert.assertEquals(title, workspace.getTitle()); Assert.assertEquals(collections.length, workspace.getCollections().size()); for (int i = 0; i < collections.length; i++) { Assert.assertEquals(collections[i], workspace.getCollections().get(i).getTitle()); } } private List<AtomWorkspaceInfo> parseWorkspaces(String resourcePath) { InputStream xml = getClass().getResourceAsStream("/META-INF/" + resourcePath); XMLEventReader2 reader = DomXMLFactoryProvider2.getInstance() .newXMLInputFactory2() .createXMLEventReader(new InputStreamReader(xml)); return Enumerable.create(AtomServiceDocumentFormatParser.parseWorkspaces(reader)).toList(); } }