001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)TestComponentValidator.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: package com.sun.jbi.management.util;
030:
031: import com.sun.jbi.management.system.ScaffoldEnvironmentContext;
032: import com.sun.jbi.management.system.Util;
033:
034: import java.io.File;
035:
036: public class TestComponentValidator extends junit.framework.TestCase {
037:
038: private String mConfigDir = null;
039: private String GOOD_COMP = "component.zip";
040: private String BAD_COMP = "bad-component.zip";
041: private String COMP_MISSING_CLASS = "component-missing-classname.zip";
042: private String COMP_MISSING_BOOTCLASS = "component-missing-bootclassname.zip";
043: private String COMP_EMPTY_BOOT_PATH = "component-empty-bootclasspath.zip";
044: private String COMP_EMPTY_CLASS_PATH = "component-empty-componentclasspath.zip";
045: private Validator mValidator;
046:
047: public TestComponentValidator(String aTestName) throws Exception {
048: super (aTestName);
049:
050: String srcroot = System.getProperty("junit.srcroot");
051: String manage = "/runtime/manage"; // open-esb build
052: mConfigDir = srcroot + manage + "/bld/test-classes/testdata/";
053:
054: java.io.File f = new java.io.File(srcroot + manage);
055: if (!f.exists()) {
056: manage = "/shasta/manage"; // mainline/whitney build
057: mConfigDir = srcroot + manage + "/bld/regress/testdata/";
058: }
059:
060: ValidatorFactory.setDescriptorValidation(true);
061:
062: ScaffoldEnvironmentContext envCtx = new ScaffoldEnvironmentContext();
063: envCtx.setJbiInstallRoot(System.getProperty("junit.as8base")
064: + "/jbi");
065: com.sun.jbi.util.EnvironmentAccess.setContext(envCtx);
066: //this is a bad dependency on ManagementContext.
067: //This should be fixed when validation logic is removed from Archive
068: Util.createManagementContext();
069:
070: mValidator = ValidatorFactory.createValidator(envCtx,
071: ValidatorType.COMPONENT);
072:
073: }
074:
075: public void setUp() throws Exception {
076: super .setUp();
077: }
078:
079: public void tearDown() throws Exception {
080: }
081:
082: /**
083: * Test with a good component
084: */
085: public void testValidateComponentGood() throws Exception {
086: File testComp = new File(mConfigDir, GOOD_COMP);
087:
088: try {
089: mValidator.validate(testComp);
090: } catch (Exception ex) {
091: fail("Unexpected exception " + ex.getMessage());
092: }
093: }
094:
095: /**
096: * Test with a bad component missing a jbi.xml
097: */
098: public void testValidateComponentBad() throws Exception {
099: File testComp = new File(mConfigDir, BAD_COMP);
100:
101: try {
102: mValidator.validate(testComp);
103: } catch (Exception ex) {
104: assertTrue(ex.getMessage().contains(
105: "JBI_ADMIN_NO_DESCRIPTOR_IN_ARCHIVE"));
106: }
107: }
108:
109: /**
110: * Test the case when the component life cycle class is missing
111: */
112: public void testValidateComponentMissingComponentClass()
113: throws Exception {
114: File testComp = new File(mConfigDir, COMP_MISSING_CLASS);
115:
116: try {
117: mValidator.validate(testComp);
118: } catch (Exception ex) {
119: assertTrue(ex.getMessage().contains("validateDescriptor"));
120: assertTrue(ex.getMessage().contains("FAILED"));
121: assertTrue(ex.getMessage().contains(
122: "JBI_ADMIN_MISSING_COMPONENT_LIFECYCLE"));
123: }
124: }
125:
126: /**
127: * Test the case when the bootstrap class is missing
128: */
129: public void testValidateComponentMissingBootstrapClass()
130: throws Exception {
131: File testComp = new File(mConfigDir, COMP_MISSING_BOOTCLASS);
132:
133: try {
134: mValidator.validate(testComp);
135: } catch (Exception ex) {
136: assertTrue(ex.getMessage().contains("validateDescriptor"));
137: assertTrue(ex.getMessage().contains("FAILED"));
138: assertTrue(ex.getMessage().contains(
139: "JBI_ADMIN_MISSING_COMPONENT_BOOTSTRAP"));
140: }
141: }
142:
143: /**
144: * Test the case when the bootstrap class is missing
145: */
146: public void testValidateComponentMissingBootstrapClassPath()
147: throws Exception {
148: File testComp = new File(mConfigDir, COMP_EMPTY_BOOT_PATH);
149:
150: try {
151: mValidator.validate(testComp);
152: } catch (Exception ex) {
153: System.out.println(ex.getMessage());
154: assertTrue(ex.getMessage().contains("validateDescriptor"));
155: assertTrue(ex.getMessage().contains("FAILED"));
156: assertTrue(ex.getMessage().contains(
157: "JBI_ADMIN_EMPTY_BOOTSTRAP_CLASSPATH"));
158: }
159: }
160:
161: /**
162: * Test the case when the bootstrap class is missing
163: */
164: public void testValidateComponentMissingComponentClassPath()
165: throws Exception {
166: File testComp = new File(mConfigDir, COMP_EMPTY_CLASS_PATH);
167:
168: try {
169: mValidator.validate(testComp);
170: } catch (Exception ex) {
171: System.out.println(ex.getMessage());
172: assertTrue(ex.getMessage().contains("validateDescriptor"));
173: assertTrue(ex.getMessage().contains("FAILED"));
174: assertTrue(ex.getMessage().contains(
175: "JBI_ADMIN_EMPTY_LIFECYCLE_CLASSPATH"));
176: }
177: }
178: }
|