001: /*
002: * ChainBuilder ESB
003: * Visual Enterprise Integration
004: *
005: * Copyright (C) 2006 Bostech Corporation
006: *
007: * This program is free software; you can redistribute it and/or modify
008: * it under the terms of the GNU General Public License as published by
009: * the Free Software Foundation; either version 2 of the License, or
010: * (at your option) any later version.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * General Public License for more details.
016: *
017: * You should have received a copy of the GNU General Public License
018: * along with this program; if not, write to the Free Software
019: * Foundation, Inc.,59 Temple Place, Suite 330, Boston, MA 02111-1307
020: * USA
021: *
022: *
023: * $ID$
024: */
025: package com.bostechcorp.cbesb.common.mdl;
026:
027: import java.io.File;
028:
029: import com.bostechcorp.cbesb.common.mdl.IMDLDocReference;
030: import com.bostechcorp.cbesb.common.mdl.IMDLDocument;
031: import com.bostechcorp.cbesb.common.mdl.MDLParser;
032: import com.bostechcorp.cbesb.common.mdl.impl.MDLDocReferenceImpl;
033: import com.bostechcorp.cbesb.common.mdl.impl.MDLDocumentImpl;
034:
035: import junit.framework.TestCase;
036:
037: public class TestProcessMDLReference extends TestCase {
038: File mdlFile = new File("target/test-data/in/variable2a.mdl");
039:
040: File mdlFile4 = new File("target/test-data/in/variable4a.mdl");
041:
042: IMDLDocument mdlDoc = new MDLDocumentImpl();
043:
044: IMDLDocument mdlDoc4 = new MDLDocumentImpl();
045:
046: protected void setUp() throws Exception {
047: super .setUp();
048: mdlDoc = MDLParser.load(mdlFile);
049: mdlDoc4 = MDLParser.load(mdlFile4);
050:
051: }
052:
053: protected void tearDown() throws Exception {
054: super .tearDown();
055: }
056:
057: /**
058: * test get/add/remove MDLReference.
059: * Include tag:
060: * same targetNamespace as the including definition or no
061: * targetNamespace may be specified by either definition.
062: * Import tag :
063: * Thismay be used to import definitions from an external file, or to allow
064: * nodes from multiple namespaces to be defined in a single definition file.
065: */
066: public void testProcessMDLReference() {
067:
068: IMDLDocReference mdlReferenceInclude[] = mdlDoc
069: .getAllMDLDocReferences();
070: // Verify that the mdlReference is not null
071: assertNotNull(mdlReferenceInclude[0]);
072: byte type = mdlReferenceInclude[0].getType();
073: String namespace = mdlReferenceInclude[0].getNamespace();
074: String defLocation = mdlReferenceInclude[0].getDefLocation();
075: // type is include
076: assertEquals(0, type);
077: assertEquals(null, namespace);
078: assertEquals("variable2b.mdl", defLocation);
079:
080: IMDLDocReference mdlReferenceImport[] = mdlDoc4
081: .getAllMDLDocReferences();
082: assertNotNull(mdlReferenceImport);
083: byte type2 = mdlReferenceImport[0].getType();
084: String namespace2 = mdlReferenceImport[0].getNamespace();
085: String defLocation2 = mdlReferenceImport[0].getDefLocation();
086: // type is import
087: assertEquals(1, type2);
088: assertEquals("http://www.bostechcorp.com/variable2", namespace2);
089: assertEquals("variable2b.mdl", defLocation2);
090:
091: // create a mdlDocReference and set value
092: IMDLDocReference mdlRef = new MDLDocReferenceImpl();
093: byte types = 1;
094: mdlRef.setType(types);
095: mdlRef.setDefLocation("com.reference");
096: mdlRef.setNamespace("http://www.bostechcorp.com/reference");
097:
098: // add it into mdlDoc
099: mdlDoc.addMDLDocReference(mdlRef);
100:
101: IMDLDocReference mdlReferenceAdd[] = mdlDoc
102: .getAllMDLDocReferences();
103: // now there are two mdlReferences in mdlDoc
104: assertEquals(2, mdlReferenceAdd.length);
105: IMDLDocReference mdlRef2[] = mdlDoc.getAllMDLDocReferences();
106: for (int i = 0; i < mdlRef2.length; i++) {
107: if (mdlRef2[i].getType() == 1) {
108: IMDLDocReference mdlDocAdd = mdlRef2[i];
109: assertEquals("com.reference", mdlDocAdd
110: .getDefLocation());
111: assertEquals("http://www.bostechcorp.com/reference",
112: mdlDocAdd.getNamespace());
113:
114: }
115: }
116: // remove the mdlDocReference
117: mdlDoc.removeMDLDocReference(mdlRef);
118: assertEquals(1, mdlDoc.getAllMDLDocReferences().length);
119: assertEquals("variable2b.mdl",
120: mdlDoc.getAllMDLDocReferences()[0].getDefLocation());
121:
122: }
123: }
|