/*******************************************************************************
* Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
******************************************************************************/
package org.axdt.asdoc.parser.dita;
import org.axdt.asdoc.model.AsdocPackage;
import org.axdt.asdoc.model.AsdocRoot;
import org.axdt.asdoc.model.AsdocType;
import org.axdt.asdoc.model.ParseLevel;
import org.axdt.asdoc.parser.AsdocParserTest;
import org.axdt.asdoc.parser.AsdocXmlHelper;
import org.axdt.asdoc.util.DitaUrlHelper;
import org.w3c.dom.Node;
import com.google.common.collect.Lists;
public class AsdocDitaParserTest extends AsdocParserTest {
public AsdocDitaParserTest() {
super("testdocs.zip!/dita/");
}
protected AsdocDitaParser createParser() {
return new AsdocDitaParser();
}
public void testReadXml() throws Exception {
Node node = new AsdocXmlHelper().readXML(testDocUri
+ DitaUrlHelper.PACKAGE_LIST);
assertNotNull(node);
Node child = node.getFirstChild();
assertEquals("apiMap", child.getNodeName());
Node ref = child.getFirstChild();
assertEquals("apiItemRef", ref.getNodeName());
assertEquals("foo.bar.xml", ref.getAttributes().getNamedItem("href")
.getNodeValue());
}
public void testParserNoop() throws Exception {
AsdocRoot root = createRoot();
assertNotNull(root);
assertNotNull(root.eContents());
assertEquals(0, root.eContents().size());
}
public void testPackageLevel() throws Exception {
AsdocRoot root = createRoot();
CollectPackages collectPackages = new CollectPackages();
assertPackageLevelResult(collectPackages.collectPackages(root));
assertPackageLevelRoot(root);
}
public void testTypeLevel() throws Exception {
AsdocRoot root = createRoot();
createParser().parseDoc(root, ParseLevel.TYPE);
assertTypeLevelResult(root);
}
public void testGlobalLevel() throws Exception {
AsdocRoot root = createRoot();
CollectTypes collectTypes = new CollectTypes();
AsdocPackage pack = root.createPackage("foo.globals");
collectTypes.collectGlobals(pack);
assertGlobalLevel(pack);
}
public void testCollectDetail() throws Exception {
AsdocRoot root = createRoot();
CollectTypes collectTypes = new CollectTypes();
assertEqualsNames(Lists.newArrayList("Application"),
collectTypes.collectDetails(root));
assertEqualsNames(Lists.newArrayList("Application"), root.getTypes());
}
public void testMemberLevel() throws Exception {
AsdocRoot root = createRoot();
CollectTypes collectTypes = new CollectTypes();
AsdocPackage pack = root.createPackage("foo.members");
AsdocType type = collectTypes
.collectMembers(createType(pack, "Members"));
assertMemberLevel(type.getMembers(), false);
type = collectTypes.collectMembers(createType(pack, "StaticMembers"));
assertMemberLevel(type.getMembers(), true);
}
public void testMemberLevelInheritance() throws Exception {
AsdocRoot root = createRoot();
CollectTypes collectTypes = new CollectTypes();
AsdocPackage pack = root.createPackage("foo.bar");
AsdocType type = collectTypes.collectMembers(createType(pack, "Bar"));
assertTypeLevelInheritance_Bar(type);
type = collectTypes.collectMembers(createType(pack, "SuperBar"));
assertTypeLevelInheritance_SuperBar(type);
}
}