You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ke...@apache.org on 2010/07/15 00:48:52 UTC

svn commit: r964236 - in /incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons: AbstractTestCase.java AppTest.java ConfigurationTest.java ConfiguredTestCaseTest.java MultiServerTest.java NaughtyTest.java

Author: kelly
Date: Wed Jul 14 22:48:52 2010
New Revision: 964236

URL: http://svn.apache.org/viewvc?rev=964236&view=rev
Log:
WIP OODT-15 Additional test cases for features that will likely never be used again

Added:
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AbstractTestCase.java
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AppTest.java
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfigurationTest.java
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfiguredTestCaseTest.java
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/MultiServerTest.java
    incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/NaughtyTest.java

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AbstractTestCase.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AbstractTestCase.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AbstractTestCase.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AbstractTestCase.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,55 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package org.apache.oodt.commons;
+
+import java.io.File;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Abstract base class for test cases.
+ *
+ * @author <a href="jason@zenplex.com">Jason van Zyl</a>
+ */
+public abstract class AbstractTestCase
+    extends TestCase 
+{
+    /** 
+     * Basedir for all file I/O. Important when running tests from
+     * the reactor.
+     */
+    public String basedir = System.getProperty("basedir");
+    
+    /**
+     * Constructor.
+     */
+    public AbstractTestCase(String testName)
+    {
+        super(testName);
+    }
+    
+    /**
+     * Get test input file.
+     *
+     * @param path Path to test input file.
+     */
+    public String getTestFile(String path)
+    {
+        return new File(basedir,path).getAbsolutePath();
+    }
+}
+

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AppTest.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AppTest.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AppTest.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/AppTest.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,54 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+package org.apache.oodt.commons;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ *
+ * @author <a href="mailto:jason@zenplex.com">Jason van Zyl</a>
+ */
+public class AppTest 
+    extends AbstractTestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertEquals( "maven kicks ass", "maven kicks ass" );
+    }
+}

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfigurationTest.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfigurationTest.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfigurationTest.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfigurationTest.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,103 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package org.apache.oodt.commons;
+
+import java.io.*;
+import java.net.MalformedURLException;
+import java.util.*;
+import junit.framework.*;
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+/** Unit test the {@link Configuration} class.
+ *
+ * @author Kelly
+ */ 
+public class ConfigurationTest extends TestCase {
+	/** Construct the test case for the {@link Configuration} class. */
+	public ConfigurationTest(String name) {
+		super(name);
+	}
+
+	protected void setUp() throws Exception {
+		// Create a temporary test configuration file.
+		tmpFile = File.createTempFile("conf", ".xml");
+		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(tmpFile));
+		byte[] doc = TEST_DOC.getBytes();
+		out.write(doc, 0, doc.length);
+		out.close();
+		oldValue = System.getProperty(Configuration.ENTITY_DIRS_PROP);
+		System.setProperty(Configuration.ENTITY_DIRS_PROP, "/dir/1,/dir/2");
+	}
+
+	protected void tearDown() throws Exception {
+		// Nuke the temporary test configuration file.
+		tmpFile.delete();
+		if (oldValue == null)
+			System.getProperties().remove(Configuration.ENTITY_DIRS_PROP);
+		else
+			System.setProperty(Configuration.ENTITY_DIRS_PROP, oldValue);
+	}
+
+	/** Test the various property methods. */
+	public void testConfiguration() throws IOException, SAXException, MalformedURLException {
+		Configuration c = new Configuration(tmpFile.toURL());
+		Properties props = new Properties();
+		props.setProperty("globalKey1", "preset-value");
+		c.mergeProperties(props);
+		assertEquals("preset-value", props.getProperty("globalKey1"));
+		assertEquals("globalValue2", props.getProperty("globalKey2"));
+		assertEquals("http://testhost.test.domain:12345", c.getWebServerBaseURL());
+		assertEquals("http://testhost.test.domain:12345/ns.ior", c.getNameServerURL());
+		assertEquals(42, c.getNameServerStateFrequency());
+		assertEquals(4, c.getEntityRefDirs().size());
+		assertTrue(c.getEntityRefDirs().contains("/dir/one"));
+		assertTrue(c.getEntityRefDirs().contains("/dir/two"));
+		assertTrue(c.getEntityRefDirs().contains("/dir/1"));
+		assertTrue(c.getEntityRefDirs().contains("/dir/2"));
+		assertEquals("/dir/1,/dir/2,/dir/one,/dir/two", System.getProperty(Configuration.ENTITY_DIRS_PROP));
+		Collection servers = c.getExecServerConfigs();
+		assertEquals(2, servers.size());
+		for (Iterator each = servers.iterator(); each.hasNext();) {
+			ExecServerConfig esc = (ExecServerConfig) each.next();
+			if (esc.getClassName().equals("test.Class1")) {
+				assertEquals("Name1", esc.getObjectKey());
+				assertEquals(1, esc.getProperties().size());
+			} else if (esc.getClassName().equals("test.Class2")) {
+				assertEquals("Name2", esc.getObjectKey());
+				assertEquals(3, esc.getProperties().size());
+				for (Iterator i = esc.getProperties().entrySet().iterator(); i.hasNext();) {
+					Map.Entry entry = (Map.Entry) i.next();
+					if (entry.getKey().equals("localKey1"))
+						assertEquals("localKey2", entry.getValue());
+					else if (entry.getKey().equals("globalKey2"))
+						assertEquals("local-override", entry.getValue());
+					else if (entry.getKey().equals("org.apache.oodt.commons.Configuration.url"))
+						; // This one's OK.
+					else fail("Unknown local property \"" + entry.getKey() + "\" in exec server");
+				}
+			} else fail("Unknown ExecServerConfig \"" + esc.getClassName() + "\" in servers from Configuration");
+		}
+	}
+
+	/** The temporary test configuration file. */
+	private File tmpFile;
+
+	/** Old value of the {@link Configuration#ENTITY_DIRS_PROP} system property. */
+	public String oldValue;
+
+	private static final String TEST_DOC = "<?xml version=\"1.0\"?>\n<!DOCTYPE configuration PUBLIC \"-//JPL//DTD EDA Configuration 1.0//EN\" \"http://enterprise.jpl.nasa.gov/dtd/configuration.dtd\">\n<configuration><webServer><host>testhost.test.domain</host><port>12345</port></webServer><nameServer stateFrequency=\"42\"><iiop><version>1.2</version><host>testhost.test.domain</host><port>12345</port><objectKey>TestService</objectKey></iiop></nameServer><xml><entityRef><dir>/dir/one</dir><dir>/dir/two</dir></entityRef></xml><properties><key>globalKey1</key><value>globalValue1</value><key>globalKey2</key><value>globalValue2</value></properties><programs><execServer><class>test.Class1</class><objectKey>Name1</objectKey></execServer><execServer><class>test.Class2</class><objectKey>Name2</objectKey><properties><key>localKey1</key><value>localKey2</value><key>globalKey2</key><value>local-override</value></properties></execServer></programs></configuration>";
+}

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfiguredTestCaseTest.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfiguredTestCaseTest.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfiguredTestCaseTest.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/ConfiguredTestCaseTest.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,66 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package org.apache.oodt.commons;
+
+import junit.framework.TestCase;
+import org.xml.sax.SAXParseException;
+
+/**
+ * Unit test the ConfiguredTestCase class.
+ *
+ * @author Kelly
+ */ 
+public class ConfiguredTestCaseTest extends TestCase {
+	/** Construct the test case for the ConfiguredTestCaseTest class.
+	 *
+	 * @param name Case name
+	 */
+	public ConfiguredTestCaseTest(String name) {
+		super(name);
+	}
+
+	public void testIt() throws Exception {
+		Case c = new Case();
+		try {
+ 			c.setUp();
+			assertNotNull(Configuration.configuration);
+		} finally {
+			c.tearDown();
+		}			
+	}
+
+	public void testItAgain() throws Exception {
+		Case c = new Case();
+		try {
+			c.setUp();
+			assertNotNull(Configuration.configuration);
+		} finally {
+			c.tearDown();
+		}			
+	}
+
+	private static class Case extends ConfiguredTestCase {
+		Case() {
+			super("test");
+		}
+		public void setUp() throws Exception {
+			super.setUp();
+		}
+		public void tearDown() throws Exception {
+			super.tearDown();
+		}
+	}		
+}

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/MultiServerTest.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/MultiServerTest.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/MultiServerTest.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/MultiServerTest.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,100 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package org.apache.oodt.commons;
+
+import junit.framework.TestCase;
+import java.io.InputStream;
+import java.io.IOException;
+import org.xml.sax.InputSource;
+import java.rmi.server.RemoteObject;
+import javax.xml.parsers.ParserConfigurationException;
+import java.lang.reflect.InvocationTargetException;
+import org.xml.sax.SAXException;
+
+/**
+ * Unit test the MultiServer class.
+ *
+ * @author Kelly
+ */ 
+public class MultiServerTest extends TestCase {
+	/**
+	 * Construct the test case for the MultiServer class.
+	 *
+	 * @param name Case name
+	 */
+	public MultiServerTest(String name) {
+		super(name);
+	}
+
+	protected void setUp() throws Exception {
+		super.setUp();
+		testConfig = getClass().getResourceAsStream("test-multiserver.xml");
+		if (testConfig == null) throw new IOException("Cannot find `test-multiserver.xml'");
+		System.setProperty("my.other.setting", "Don't override");
+	}
+
+	public void testParsing() throws ParserConfigurationException, SAXException, IOException, ClassNotFoundException,
+		NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
+		InputSource is = new InputSource(testConfig);
+		MultiServer.parseConfig(is);
+		assertEquals("test.app", MultiServer.getAppName());
+		assertEquals(4, MultiServer.getServers().size());
+
+		MultiServer.Server server = (MultiServer.Server) MultiServer.getServers().get("urn:eda:rmi:Test1");
+		assertEquals("org.apache.oodt.commons.MultiServerTest$Svr1", server.getClassName());
+		assertEquals(MultiServer.BINDING, server.getBindingBehavior());
+
+		server = (MultiServer.Server) MultiServer.getServers().get("urn:eda:rmi:Test2");
+		assertEquals("org.apache.oodt.commons.MultiServerTest$Svr2", server.getClassName());
+		assertEquals(MultiServer.NONBINDING, server.getBindingBehavior());
+
+		server = (MultiServer.Server) MultiServer.getServers().get("urn:eda:rmi:Test3");
+		assertEquals("org.apache.oodt.commons.MultiServerTest$Svr3", server.getClassName());
+		assertEquals(MultiServer.REBINDING, server.getBindingBehavior());
+
+		MultiServer.AutobindingServer s = (MultiServer.AutobindingServer) MultiServer.getServers().get("urn:eda:rmi:Test4");
+		assertEquals("org.apache.oodt.commons.MultiServerTest$Svr4", s.getClassName());
+		assertEquals(MultiServer.AUTO, s.getBindingBehavior());
+		assertEquals(360000L, s.getPeriod());
+
+		assertEquals("My Value", System.getProperty("my.setting"));
+		assertEquals("Don't override", System.getProperty("my.other.setting"));
+	}
+
+	public void tearDown() throws Exception {
+		if (testConfig != null) try {
+			testConfig.close();
+		} catch (IOException ignore) {}
+		System.getProperties().remove("my.setting");
+		System.getProperties().remove("my.other.setting");
+		super.tearDown();
+	}
+
+	private InputStream testConfig;
+
+	public static class Svr1 extends RemoteObject {
+		public Svr1(ExecServer e) {}
+	}
+	public static class Svr2 extends RemoteObject {
+		public Svr2(ExecServer e) {}
+	}
+	public static class Svr3 extends RemoteObject {
+		public Svr3(ExecServer e) {}
+	}
+	public static class Svr4 extends RemoteObject {
+		public Svr4(ExecServer e) {}
+	}
+}

Added: incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/NaughtyTest.java
URL: http://svn.apache.org/viewvc/incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/NaughtyTest.java?rev=964236&view=auto
==============================================================================
--- incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/NaughtyTest.java (added)
+++ incubator/oodt/trunk/commons/src/test/org/apache/oodt/commons/NaughtyTest.java Wed Jul 14 22:48:52 2010
@@ -0,0 +1,55 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more contributor
+// license agreements.  See the NOTICE.txt file distributed with this work for
+// additional information regarding copyright ownership.  The ASF licenses this
+// file to you under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License.  You may obtain a copy of
+// the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+// License for the specific language governing permissions and limitations under
+// the License.
+
+package org.apache.oodt.commons;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ *
+ * @author <a href="mailto:jason@zenplex.com">Jason van Zyl</a>
+ */
+public class NaughtyTest
+    extends AbstractTestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public NaughtyTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( NaughtyTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        // Crash and burn!
+    }
+}