1 7 8 package org.netbeans.modules.xml.schema.model.impl; 9 10 import java.io.File ; 11 import java.net.URI ; 12 import java.net.URL ; 13 import java.util.Collection ; 14 import java.util.Iterator ; 15 import java.util.LinkedList ; 16 import junit.framework.*; 17 import org.netbeans.modules.xml.xam.locator.CatalogModelException; 18 import org.netbeans.modules.xml.xam.ModelSource; 19 import org.netbeans.modules.xml.schema.model.*; 20 import org.openide.filesystems.FileObject; 21 import org.openide.filesystems.FileUtil; 22 23 27 public class MultiFileTest extends TestCase { 28 29 private static String TEST_XSD = "resources/OrgChart.xsd"; 30 31 public MultiFileTest(String testName) { 32 super(testName); 33 } 34 35 protected void setUp() throws Exception { 36 } 37 38 protected void tearDown() throws Exception { 39 TestCatalogModel.getDefault().clearDocumentPool(); 40 } 41 42 public void testGetImportedModelSources() throws Exception { 43 if ( ! NamespaceLocation.ADDRESS.getResourceFile().exists() ) { 44 NamespaceLocation.ADDRESS.refreshResourceFile(); 45 } 46 SchemaModel sm = TestCatalogModel.getDefault().getSchemaModel(NamespaceLocation.ORGCHART); 47 SchemaImpl schema = (SchemaImpl)sm.getSchema(); 49 Collection <Import> importedModelSources = new LinkedList <Import>(schema.getImports()); 50 assertEquals("should be six imports", 6 ,importedModelSources.size()); 51 Iterator <Import> itr = importedModelSources.iterator(); 52 while(itr.hasNext()) { 53 Import i = itr.next(); 54 try { 55 SchemaModel sm2 = i.resolveReferencedModel(); 56 } catch (CatalogModelException ex) { 57 itr.remove(); 58 } 59 } 60 assertEquals("only two imports are reachable", 1,importedModelSources.size()); 61 62 ModelSource importedModelSource = importedModelSources.iterator().next().resolveReferencedModel().getModelSource(); 63 assertEquals("address.xsd",((FileObject)importedModelSource.getLookup().lookup(FileObject.class)).getNameExt()); 64 ModelSource testImportedModelSource = TestCatalogModel.getDefault().createTestModelSource((FileObject) importedModelSource.getLookup().lookup(FileObject.class), false); 66 SchemaModel sm1 = SchemaModelFactory.getDefault().getModel(testImportedModelSource); 67 assertNotNull(sm1); 68 assertEquals("http://www.altova.com/IPO",sm1.getSchema().getTargetNamespace()); 69 } 70 71 public void testGetIncludedModelSources() throws Exception { 72 URL orgChartUrl = getClass().getResource("../resources/ipo.xsd"); 74 File orgChartFile = new File (orgChartUrl.toURI()); 75 FileObject orgChartFileObj = FileUtil.toFileObject(orgChartFile); 76 ModelSource testModelSource = TestCatalogModel.getDefault().createTestModelSource(orgChartFileObj, false); 78 SchemaModel sm = SchemaModelFactory.getDefault().getModel(testModelSource); 79 80 URL addressUrl = getClass().getResource("../resources/address.xsd"); 82 TestCatalogModel.getDefault().addURI(new URI ("address.xsd"),addressUrl.toURI()); 83 84 SchemaImpl schema = (SchemaImpl)sm.getSchema(); 86 Collection <Include> includedModelSources = schema.getIncludes(); 87 assertEquals(1,includedModelSources.size()); 88 89 ModelSource importedModelSource = includedModelSources.iterator().next().resolveReferencedModel().getModelSource(); 90 assertEquals("address.xsd",((FileObject)importedModelSource.getLookup().lookup(FileObject.class)).getNameExt()); 91 92 ModelSource testImportedModelSource = TestCatalogModel.getDefault().createTestModelSource((FileObject) importedModelSource.getLookup().lookup(FileObject.class), false); 94 SchemaModel sm1 = SchemaModelFactory.getDefault().getModel(testImportedModelSource); 95 assertNotNull(sm1); 96 assertEquals(schema.getTargetNamespace(),sm1.getSchema().getTargetNamespace()); 97 } 98 } 99 | Popular Tags |