activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jgo...@apache.org
Subject svn commit: r682543 - in /activemq/activemq-dotnet: Apache.NMS.ActiveMQ/trunk/ Apache.NMS.ActiveMQ/trunk/src/main/csharp/ Apache.NMS.ActiveMQ/trunk/src/test/csharp/ Apache.NMS/trunk/ Apache.NMS/trunk/src/test/csharp/
Date Mon, 04 Aug 2008 23:55:53 GMT
Author: jgomes
Date: Mon Aug  4 16:55:52 2008
New Revision: 682543

URL: http://svn.apache.org/viewvc?rev=682543&view=rev
Log:
Refactored unit tests to load external configuration that can be customized for a run-time
environment without having to modify and recompile the unit test code.
Fixes [AMQNET-92]. (See https://issues.apache.org/activemq/browse/AMQNET-92)

Added:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InheritedTests.cs
Removed:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/BadConsumeTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/BytesMessageTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ConnectionTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/ConsumerTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/DurableTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TemporaryQueueTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TestUtils.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TextMessage.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TransactionTest.cs
Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MapMessageTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSPropertyTest.cs
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs
    activemq/activemq-dotnet/Apache.NMS/trunk/vs2008-nms-test.csproj

Added: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config?rev=682543&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config (added)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/nmsprovider-test.config Mon Aug  4
16:55:52 2008
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+* 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.
+-->
+<configuration>
+	<defaultURI value="activemq:tcp://jgomesv1:61616">
+		<factoryParams>
+			<param type="string" value="NMSTestClient"/>
+		</factoryParams>
+		<userName value="guest"/>
+		<passWord value="guest"/>
+	</defaultURI>
+
+	<openWireURI value="activemq:tcp://jgomesv1:61616">
+		<factoryParams>
+			<param type="string" value="OpenWireTestClient"/>
+		</factoryParams>
+	</openWireURI>
+
+	<stompURI value="activemq:stomp://jgomesv1:61613">
+		<factoryParams>
+			<param type="string" value="STOMPTestClient"/>
+		</factoryParams>
+	</stompURI>
+</configuration>

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/main/csharp/ConnectionFactory.cs
Mon Aug  4 16:55:52 2008
@@ -28,7 +28,7 @@
     /// </summary>
     public class ConnectionFactory : IConnectionFactory
     {
-		public const string DEFAULT_BROKER_URL = "tcp://localhost:61616";
+		public const string DEFAULT_BROKER_URL = "activemq:tcp://localhost:61616";
 		public const string ENV_BROKER_URL = "ACTIVEMQ_BROKER_URL";
 		
         private Uri brokerUri;

Added: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InheritedTests.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InheritedTests.cs?rev=682543&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InheritedTests.cs (added)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/InheritedTests.cs Mon
Aug  4 16:55:52 2008
@@ -0,0 +1,60 @@
+/*
+ * 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.
+ */
+using NUnit.Framework;
+
+namespace Apache.NMS.ActiveMQ.Test
+{
+	[TestFixture]
+	public class BadConsumeTest : Apache.NMS.Test.BadConsumeTest
+	{
+	}
+
+	[TestFixture]
+	public class BytesMessageTest : Apache.NMS.Test.BytesMessageTest
+	{
+	}
+
+	[TestFixture]
+	public class ConnectionTest : Apache.NMS.Test.ConnectionTest
+	{
+	}
+
+	[TestFixture]
+	public class ConsumerTest : Apache.NMS.Test.ConsumerTest
+	{
+	}
+
+	[TestFixture]
+	public class DurableTest : Apache.NMS.Test.DurableTest
+	{
+	}
+
+	[TestFixture]
+	public class TemporaryQueueTest : Apache.NMS.Test.TemporaryQueueTest
+	{
+	}
+
+	[TestFixture]
+	public class TextMessage : Apache.NMS.Test.TextMessage
+	{
+	}
+
+	[TestFixture]
+	public class TransactionTest : Apache.NMS.Test.TransactionTest
+	{
+	}
+}

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MapMessageTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MapMessageTest.cs?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MapMessageTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/MapMessageTest.cs Mon
Aug  4 16:55:52 2008
@@ -21,20 +21,11 @@
 	[TestFixture]
 	public class MapMessageTest_OpenWire : Apache.NMS.Test.MapMessageTest
 	{
-		protected override IConnectionFactory CreateConnectionFactory()
-		{
-			return TestUtils.CreateOpenWireConnectionFactory();
-		}
 	}
 
 	[TestFixture]
 	public class MapMessageTest_Stomp : Apache.NMS.Test.MapMessageTest
 	{
-		protected override IConnectionFactory CreateConnectionFactory()
-		{
-			return TestUtils.CreateStompConnectionFactory();
-		}
-
 		public override void SendAndSyncReceive()
 		{
 			// TODO disable test
@@ -42,9 +33,8 @@
 
 		protected override void AssertValidMessage(IMessage message)
 		{
-			System.Console.WriteLine("Received MapMessage: " + message);
-
 			Assert.IsTrue(message is IMapMessage, "Did not receive a MapMessage!");
+			System.Console.WriteLine("Received MapMessage: " + message);
 		}
 	}
 }

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSPropertyTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSPropertyTest.cs?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSPropertyTest.cs
(original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/NMSPropertyTest.cs
Mon Aug  4 16:55:52 2008
@@ -22,20 +22,11 @@
     [TestFixture]
     public class NMSPropertyTest_OpenWire : Apache.NMS.Test.NMSPropertyTest
     {
-        protected override IConnectionFactory CreateConnectionFactory()
-        {
-			return TestUtils.CreateOpenWireConnectionFactory();
-		}
     }
 
 	[TestFixture]
 	public class NMSPropertyTest_Stomp : Apache.NMS.Test.NMSPropertyTest
 	{
-		protected override IConnectionFactory CreateConnectionFactory()
-		{
-			return TestUtils.CreateStompConnectionFactory();
-		}
-
 		protected override void AssertNonStringProperties(IMessage message)
 		{
 			// lets disable typesafe property testing as right now Stomp does not support them

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/vs2008-activemq-test.csproj Mon Aug
 4 16:55:52 2008
@@ -36,23 +36,17 @@
     <DebugType>full</DebugType>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>$(USERPROFILE)\.nant\repository\org.nunit\nunit\2.2.8\all\nunit.framework.dll</HintPath>
-    </Reference>
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77,
processorArchitecture=MSIL" />
     <Reference Include="System" />
+    <Reference Include="System.Data" />
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="src\test\csharp\BadConsumeTest.cs" />
-    <Compile Include="src\test\csharp\BytesMessageTest.cs" />
     <Compile Include="src\test\csharp\Commands\CommandTest.cs">
       <SubType>Code</SubType>
     </Compile>
     <Compile Include="src\test\csharp\CommonAssemblyInfo.cs" />
-    <Compile Include="src\test\csharp\ConnectionTest.cs" />
-    <Compile Include="src\test\csharp\ConsumerTest.cs" />
-    <Compile Include="src\test\csharp\DurableTest.cs" />
+    <Compile Include="src\test\csharp\InheritedTests.cs" />
     <Compile Include="src\test\csharp\MapMessageTest.cs" />
     <Compile Include="src\test\csharp\NMSConnectionFactoryTest.cs" />
     <Compile Include="src\test\csharp\NMSPropertyTest.cs" />
@@ -66,13 +60,9 @@
       <SubType>Code</SubType>
     </Compile>
     <Compile Include="src\test\csharp\StompHelperTest.cs" />
-    <Compile Include="src\test\csharp\TemporaryQueueTest.cs" />
     <Compile Include="src\test\csharp\TestMain.cs">
       <SubType>Code</SubType>
     </Compile>
-    <Compile Include="src\test\csharp\TestUtils.cs" />
-    <Compile Include="src\test\csharp\TextMessage.cs" />
-    <Compile Include="src\test\csharp\TransactionTest.cs" />
   </ItemGroup>
   <ItemGroup>
     <ProjectReference Include="vendor\Apache.NMS\vs2008-nms-test.csproj">
@@ -90,6 +80,9 @@
   </ItemGroup>
   <ItemGroup>
     <None Include="activemq-dotnet.snk" />
+    <Content Include="nmsprovider-test.config">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
 </Project>
\ No newline at end of file

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs Mon Aug  4
16:55:52 2008
@@ -17,6 +17,9 @@
 using Apache.NMS;
 using NUnit.Framework;
 using System;
+using System.IO;
+using System.Xml;
+using System.Collections;
 
 namespace Apache.NMS.Test
 {
@@ -32,13 +35,15 @@
 		// enable/disable logging of message flows
 		protected bool logging = true;
 
-		private IConnectionFactory factory;
+		private NMSConnectionFactory NMSFactory;
 		private IConnection connection;
 		private ISession session;
 		private IDestination destination;
 
 		protected TimeSpan receiveTimeout = TimeSpan.FromMilliseconds(5000);
-		protected string clientId;
+		protected virtual string clientId { get; set; }
+		protected virtual string passWord { get; set; }
+		protected virtual string userName { get; set; }
 		protected bool persistent = true;
 		protected DestinationType destinationType = DestinationType.Queue;
 		protected AcknowledgementMode acknowledgementMode = AcknowledgementMode.ClientAcknowledge;
@@ -78,41 +83,40 @@
 		{
 			get
 			{
-				if(factory == null)
+				if(null == NMSFactory)
 				{
-					factory = CreateConnectionFactory();
-					Assert.IsNotNull(factory, "no factory created");
+					Assert.IsTrue(CreateNMSFactory(), "Error creating factory.");
 				}
-				return factory;
+
+				return NMSFactory.ConnectionFactory;
 			}
-			set { this.factory = value; }
 		}
 
 		public IConnection Connection
 		{
 			get
 			{
-				if(connection == null)
+				if(null == connection)
 				{
 					Connect();
 				}
+
 				return connection;
 			}
-			set { this.connection = value; }
 		}
 
 		public ISession Session
 		{
 			get
 			{
-				if(session == null)
+				if(null == session)
 				{
 					session = Connection.CreateSession(acknowledgementMode);
 					Assert.IsNotNull(session, "no session created");
 				}
+
 				return session;
 			}
-			set { this.session = value; }
 		}
 
 		protected virtual void Connect()
@@ -165,31 +169,129 @@
 
 		public virtual void SendAndSyncReceive()
 		{
-			using(ISession sendSession = Connection.CreateSession())
+			// IDestination sendDestination = CreateDestination(Session);
+			IMessageConsumer consumer = Session.CreateConsumer(Destination);
+			IMessageProducer producer = Session.CreateProducer(Destination);
+
+			producer.Persistent = persistent;
+
+			IMessage request = CreateMessage();
+			producer.Send(request);
+
+			IMessage message = consumer.Receive(receiveTimeout);
+			Assert.IsNotNull(message, "No message returned!");
+			AssertValidMessage(message);
+		}
+
+		protected virtual string GetConnectionConfigFileName() { return "nmsprovider-test.config";
}
+
+		protected virtual string GetNameTestURI() { return "defaultURI"; }
+
+		protected bool CreateNMSFactory()
+		{
+			return CreateNMSFactory(GetNameTestURI());
+		}
+
+		protected bool CreateNMSFactory(string nameTestURI)
+		{
+			Uri brokerUri = null;
+			object[] factoryParams = null;
+			string connectionConfigFileName = GetConnectionConfigFileName();
+
+			Assert.IsTrue(File.Exists(connectionConfigFileName), "Connection configuration file does
not exist.");
+			XmlDocument configDoc = new XmlDocument();
+
+			configDoc.Load(connectionConfigFileName);
+			XmlElement uriNode = (XmlElement) configDoc.SelectSingleNode(String.Format("/configuration/{0}",
nameTestURI));
+
+			if(null != uriNode)
 			{
-				IDestination sendDestination = CreateDestination(sendSession);
-				IMessageConsumer consumer = sendSession.CreateConsumer(sendDestination);
-				IMessageProducer producer = sendSession.CreateProducer(sendDestination);
-				producer.Persistent = persistent;
+				brokerUri = new Uri(uriNode.GetAttribute("value"));
+				factoryParams = GetFactoryParams(uriNode);
+	
+				XmlElement userNameNode = (XmlElement) uriNode.SelectSingleNode("userName");
 
-				IMessage request = sendSession.CreateMessage();
-				producer.Send(request);
+				if(null != userNameNode)
+				{
+					userName = userNameNode.GetAttribute("value");
+				}
+				else
+				{
+					userName = "guest";
+				}
+
+				XmlElement passWordNode = (XmlElement) uriNode.SelectSingleNode("passWord");
+
+				if(null != passWordNode)
+				{
+					passWord = passWordNode.GetAttribute("value");
+				}
+				else
+				{
+					passWord = "guest";
+				}
 
-				IMessage message = consumer.Receive(receiveTimeout);
-				Assert.IsNotNull(message, "No message returned!");
-				AssertValidMessage(message);
+				if(null == factoryParams)
+				{
+					NMSFactory = new Apache.NMS.NMSConnectionFactory(brokerUri);
+				}
+				else
+				{
+					NMSFactory = new Apache.NMS.NMSConnectionFactory(brokerUri, factoryParams);
+				}
 			}
+
+			return (null != NMSFactory);
 		}
 
-		protected abstract IConnectionFactory CreateConnectionFactory();
+		protected object[] GetFactoryParams(XmlElement uriNode)
+		{
+			ArrayList factoryParams = new ArrayList();
+			XmlElement factoryParamsNode = (XmlElement) uriNode.SelectSingleNode("factoryParams");
+
+			if(null != factoryParamsNode)
+			{
+				XmlNodeList nodeList = factoryParamsNode.SelectNodes("param");
+
+				if(null != nodeList)
+				{
+					foreach(XmlElement paramNode in nodeList)
+					{
+						string paramType = paramNode.GetAttribute("type");
+						string paramValue = paramNode.GetAttribute("value");
+
+						switch(paramType)
+						{
+						case "string":
+							factoryParams.Add(paramValue);
+						break;
+
+						case "int":
+							factoryParams.Add(int.Parse(paramValue));
+						break;
+
+						// TODO: Add more parameter types
+						}
+					}
+				}
+			}
+
+			if(factoryParams.Count > 0)
+			{
+				return factoryParams.ToArray();
+			}
+
+			return null;
+		}
 
 		protected virtual IConnection CreateConnection()
 		{
-			IConnection newConnection = Factory.CreateConnection();
+			IConnection newConnection = Factory.CreateConnection(userName, passWord);
 			if(clientId != null)
 			{
 				newConnection.ClientId = clientId;
 			}
+
 			return newConnection;
 		}
 

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/vs2008-nms-test.csproj
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/vs2008-nms-test.csproj?rev=682543&r1=682542&r2=682543&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/vs2008-nms-test.csproj (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/vs2008-nms-test.csproj Mon Aug  4 16:55:52 2008
@@ -51,10 +51,7 @@
     <DebugType>full</DebugType>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="nunit.framework, Version=2.2.0.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>$(USERPROFILE)\.nant\repository\org.nunit\nunit\2.2.8\all\nunit.framework.dll</HintPath>
-    </Reference>
+    <Reference Include="nunit.framework, Version=2.4.7.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77,
processorArchitecture=MSIL" />
     <Reference Include="System" />
     <Reference Include="System.Xml" />
   </ItemGroup>



Mime
View raw message