KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > xml > schema > model > impl > MultiFileTest


1 /*
2  * MultiFileTest.java
3  * JUnit based test
4  *
5  * Created on December 8, 2005, 12:08 PM
6  */

7
8 package org.netbeans.modules.xml.schema.model.impl;
9
10 import java.io.File JavaDoc;
11 import java.net.URI JavaDoc;
12 import java.net.URL JavaDoc;
13 import java.util.Collection JavaDoc;
14 import java.util.Iterator JavaDoc;
15 import java.util.LinkedList JavaDoc;
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 /**
24  *
25  * @author Administrator
26  */

27 public class MultiFileTest extends TestCase {
28     
29     private static String JavaDoc TEST_XSD = "resources/OrgChart.xsd";
30     
31     public MultiFileTest(String JavaDoc testName) {
32         super(testName);
33     }
34     
35     protected void setUp() throws Exception JavaDoc {
36     }
37     
38     protected void tearDown() throws Exception JavaDoc {
39         TestCatalogModel.getDefault().clearDocumentPool();
40     }
41     
42     public void testGetImportedModelSources() throws Exception JavaDoc {
43         if ( ! NamespaceLocation.ADDRESS.getResourceFile().exists() ) {
44             NamespaceLocation.ADDRESS.refreshResourceFile();
45         }
46         SchemaModel sm = TestCatalogModel.getDefault().getSchemaModel(NamespaceLocation.ORGCHART);
47         // get imported model sources
48
SchemaImpl schema = (SchemaImpl)sm.getSchema();
49         Collection JavaDoc<Import> importedModelSources = new LinkedList JavaDoc<Import>(schema.getImports());
50     assertEquals("should be six imports", 6 ,importedModelSources.size());
51     Iterator JavaDoc<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         // get imported model
65
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 JavaDoc {
72         // get the model for OrgChart.xsd
73
URL JavaDoc orgChartUrl = getClass().getResource("../resources/ipo.xsd");
74         File JavaDoc orgChartFile = new File JavaDoc(orgChartUrl.toURI());
75         FileObject orgChartFileObj = FileUtil.toFileObject(orgChartFile);
76         //ModelSource localTestModelSource = new TestModelSource(orgChartFileObj,false);
77
ModelSource testModelSource = TestCatalogModel.getDefault().createTestModelSource(orgChartFileObj, false);
78         SchemaModel sm = SchemaModelFactory.getDefault().getModel(testModelSource);
79         
80         //register address.xsd with relative location (this is to be done only once
81
URL JavaDoc addressUrl = getClass().getResource("../resources/address.xsd");
82         TestCatalogModel.getDefault().addURI(new URI JavaDoc("address.xsd"),addressUrl.toURI());
83         
84         // get included model sources
85
SchemaImpl schema = (SchemaImpl)sm.getSchema();
86         Collection JavaDoc<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         // get included model
93
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