You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oh...@apache.org on 2007/02/11 21:43:09 UTC
svn commit: r506128 -
/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/
Author: oheger
Date: Sun Feb 11 12:43:08 2007
New Revision: 506128
URL: http://svn.apache.org/viewvc?view=rev&rev=506128
Log:
Changed mock Context implementation used for JNDI tests
Added:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java (with props)
Removed:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockStaticMemoryInitialContextFactory.java
Modified:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationFactory.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIEnvironmentValues.java
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestNullJNDIEnvironmentValues.java
Added: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java?view=auto&rev=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java (added)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java Sun Feb 11 12:43:08 2007
@@ -0,0 +1,165 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE 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.commons.configuration;
+
+import java.util.Hashtable;
+
+import javax.naming.Context;
+import javax.naming.NameClassPair;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingEnumeration;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+
+import com.mockobjects.dynamic.C;
+import com.mockobjects.dynamic.Mock;
+
+/**
+ * A mock implementation of the <code>InitialContextFactory</code> interface.
+ * This implementation will return a mock context that contains some test data.
+ *
+ * @author <a
+ * href="http://jakarta.apache.org/commons/configuration/team-list.html">Commons
+ * Configuration team</a>
+ * @version $Id$
+ */
+public class MockInitialContextFactory implements InitialContextFactory
+{
+ /** Constant for the lookup method. */
+ private static final String METHOD_LOOKUP = "lookup";
+
+ /** Constant for the list method. */
+ private static final String METHOD_LIST = "list";
+
+ /** Constant for the name of the missing property. */
+ private static final String MISSING_PROP = "/missing";
+
+ /** Constant for the name of the prefix. */
+ private static final String PREFIX = "test/";
+
+ /** An array with the names of the supported properties. */
+ private static final String[] PROP_NAMES =
+ { "key", "key2", "short", "boolean", "byte", "double", "float", "integer",
+ "long", "onlyinjndi" };
+
+ /** An array with the values of the supported properties. */
+ private static final String[] PROP_VALUES =
+ { "jndivalue", "jndivalue2", "1", "true", "10", "10.25", "20.25", "10",
+ "1000000", "true" };
+
+ /** An array with properties that are requested, but are not in the context. */
+ private static final String[] MISSING_NAMES =
+ { "missing/list", "test/imaginarykey", "foo/bar" };
+
+ /**
+ * Creates a <code>Context</code> object that is backed by a mock object.
+ * The mock context can be queried for the values of certain test
+ * properties. It also supports listing the contained (sub) properties.
+ *
+ * @param env the environment
+ * @return the context mock
+ */
+ public Context getInitialContext(Hashtable env) throws NamingException
+ {
+ Mock mockTopCtx = createCtxMock(PREFIX);
+ Mock mockPrfxCtx = createCtxMock("");
+ Mock mockBaseCtx = new Mock(Context.class);
+ mockBaseCtx.matchAndReturn(METHOD_LOOKUP, C.eq(""), mockTopCtx.proxy());
+ mockBaseCtx.matchAndReturn(METHOD_LOOKUP, C.eq("test"), mockPrfxCtx
+ .proxy());
+ mockTopCtx.matchAndReturn(METHOD_LOOKUP, C.eq("test"), mockPrfxCtx
+ .proxy());
+ mockTopCtx.matchAndReturn(METHOD_LIST, C.eq(""), createEnumMock(
+ mockTopCtx, new String[]
+ { "test" }, new Object[]
+ { mockPrfxCtx.proxy() }).proxy());
+ mockPrfxCtx.matchAndReturn(METHOD_LIST, C.eq(""), createEnumMock(
+ mockPrfxCtx, PROP_NAMES, PROP_VALUES).proxy());
+ return (Context) mockBaseCtx.proxy();
+ }
+
+ /**
+ * Creates a mock for a Context with the specified prefix.
+ *
+ * @param prefix the prefix
+ * @return the mock for the context
+ */
+ private Mock createCtxMock(String prefix)
+ {
+ Mock mockCtx = new Mock(Context.class);
+ for (int i = 0; i < PROP_NAMES.length; i++)
+ {
+ bind(mockCtx, prefix + PROP_NAMES[i], PROP_VALUES[i]);
+ String errProp = (prefix.length() > 0) ? PROP_NAMES[i] : PREFIX
+ + PROP_NAMES[i];
+ bindError(mockCtx, errProp);
+ }
+ for (int i = 0; i < MISSING_NAMES.length; i++)
+ {
+ bindError(mockCtx, MISSING_NAMES[i]);
+ }
+ return mockCtx;
+ }
+
+ /**
+ * Binds a property value to the mock context.
+ *
+ * @param mockCtx the context
+ * @param name the name of the property
+ * @param value the value of the property
+ */
+ private void bind(Mock mockCtx, String name, String value)
+ {
+ mockCtx.matchAndReturn(METHOD_LOOKUP, C.eq(name), value);
+ bindError(mockCtx, name + MISSING_PROP);
+ }
+
+ /**
+ * Configures the mock to expect a call for a non existing property.
+ *
+ * @param mockCtx the mock
+ * @param name the name of the property
+ */
+ private void bindError(Mock mockCtx, String name)
+ {
+ mockCtx.matchAndThrow(METHOD_LOOKUP, C.eq(name),
+ new NameNotFoundException("unknown property"));
+ }
+
+ /**
+ * Creates and initializes a mock for a naming enumeration.
+ *
+ * @param mockCtx the mock representing the context
+ * @param names the names contained in the iteration
+ * @param values the corresponding values
+ * @return the mock for the enumeration
+ */
+ private Mock createEnumMock(Mock mockCtx, String[] names, Object[] values)
+ {
+ Mock mockEnum = new Mock(NamingEnumeration.class);
+ for (int i = 0; i < names.length; i++)
+ {
+ NameClassPair ncp = new NameClassPair(names[i], values[i]
+ .getClass().getName());
+ mockEnum.expectAndReturn("hasMore", true);
+ mockEnum.expectAndReturn("next", ncp);
+ }
+ mockEnum.expectAndReturn("hasMore", false);
+ mockEnum.expect("close");
+ return mockEnum;
+ }
+}
Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/MockInitialContextFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationFactory.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationFactory.java?view=diff&rev=506128&r1=506127&r2=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationFactory.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestConfigurationFactory.java Sun Feb 11 12:43:08 2007
@@ -69,7 +69,7 @@
public void setUp() throws Exception
{
- System.setProperty("java.naming.factory.initial", "org.apache.commons.configuration.MockStaticMemoryInitialContextFactory");
+ System.setProperty("java.naming.factory.initial", "org.apache.commons.configuration.MockInitialContextFactory");
factory = new ConfigurationFactory();
}
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java?view=diff&rev=506128&r1=506127&r2=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestDefaultConfigurationBuilder.java Sun Feb 11 12:43:08 2007
@@ -66,7 +66,7 @@
super.setUp();
System
.setProperty("java.naming.factory.initial",
- "org.apache.commons.configuration.MockStaticMemoryInitialContextFactory");
+ "org.apache.commons.configuration.MockInitialContextFactory");
System.setProperty("test_file_xml", "test.xml");
System.setProperty("test_file_combine", "testcombine1.xml");
factory = new DefaultConfigurationBuilder();
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java?view=diff&rev=506128&r1=506127&r2=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIConfiguration.java Sun Feb 11 12:43:08 2007
@@ -33,8 +33,7 @@
*/
public class TestJNDIConfiguration extends TestCase {
- public static final String CONTEXT_FACTORY =
- "org.apache.commons.configuration.MockStaticMemoryInitialContextFactory";
+ public static final String CONTEXT_FACTORY = MockInitialContextFactory.class.getName();
private JNDIConfiguration conf;
private NonStringTestHolder nonStringTestHolder;
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIEnvironmentValues.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIEnvironmentValues.java?view=diff&rev=506128&r1=506127&r2=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIEnvironmentValues.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestJNDIEnvironmentValues.java Sun Feb 11 12:43:08 2007
@@ -75,7 +75,7 @@
public void testContainsKey() throws Exception
{
assertTrue(conf.containsKey("test.key"));
- assertTrue(!conf.containsKey("test.imaginerykey"));
+ assertTrue(!conf.containsKey("test.imaginarykey"));
}
public void testClearProperty()
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestNullJNDIEnvironmentValues.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestNullJNDIEnvironmentValues.java?view=diff&rev=506128&r1=506127&r2=506128
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestNullJNDIEnvironmentValues.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestNullJNDIEnvironmentValues.java Sun Feb 11 12:43:08 2007
@@ -66,7 +66,7 @@
public void testContainsKey() throws Exception
{
assertTrue(conf.containsKey("test.key"));
- assertTrue(!conf.containsKey("test.imaginerykey"));
+ assertTrue(!conf.containsKey("test.imaginarykey"));
}
public void testClearProperty()
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org