From 13d4e32b616385797b8d777b6186fe733370b1b2 Mon Sep 17 00:00:00 2001 From: markpollack Date: Mon, 7 Dec 2009 22:22:38 +0000 Subject: [PATCH] SPRNET-1280 - Create integration test project for TIBCO EMS --- .../Messaging/Ems/Core/EmsTemplateTests.cs | 64 ++++++++++++++++- .../Messaging/Ems/Core/EmsTemplateTests.xml | 4 ++ .../Messaging/Ems/Core/SimpleGateway.cs | 2 +- .../SimpleMessageListenerContainerTests.cs | 69 +++++++++++++++++++ .../SimpleMessageListenerContainerTests.xml | 34 +++++++++ ...ing.Messaging.Ems.Integration.Tests.csproj | 8 +++ 6 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.cs create mode 100644 test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.xml diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.cs b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.cs index 98a1c6d8..e622e6c9 100644 --- a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.cs +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.cs @@ -34,6 +34,7 @@ using Spring.Messaging.Ems.Listener; using Spring.Objects.Factory.Xml; using Spring.Testing.NUnit; using TIBCO.EMS; +using TIBCO.EMS.ADMIN; #endregion @@ -51,23 +52,84 @@ namespace Spring.Messaging.Ems.Core protected IConnectionFactory cachingJndiConnectionFactory; + protected EmsTemplate emsTemplate; + + protected SimpleGateway simpleGateway; + + + private Admin admin; + + private string queueName = "INT_TEST_QUEUE"; + + private Hashtable env = new Hashtable(); + + private LookupContext lookupContext; + /// /// Default constructor for EmsTemplateTests. /// public EmsTemplateTests() { this.PopulateProtectedVariables = true; + + env.Add(LookupContext.PROVIDER_URL, "tibjmsnaming://localhost:7222"); + env.Add(LookupContext.SECURITY_PRINCIPAL, "admin"); + env.Add(LookupContext.SECURITY_CREDENTIALS, ""); + lookupContext = new LookupContext(env); } + protected override void OnSetUp() + { + admin = new Admin("tcp://localhost:7222", "admin", ""); + Destination destination = (Destination)lookupContext.Lookup(queueName); + if (destination != null) admin.DestroyQueue(queueName); + admin.CreateQueue(new QueueInfo(queueName)); + admin.BindQueue(queueName, queueName); + admin.PurgeQueue(queueName); + } + + [Test] - public void SendAndReceive() + public void ConvertAndSend() { Assert.NotNull(emsConnectionFactory); Assert.NotNull(connectionFactory); Assert.NotNull(jndiEmsConnectionFactory); Assert.NotNull(cachingJndiConnectionFactory); + Assert.NotNull(emsTemplate); + + string msgText = "Hello World"; + + //Use with destination set at runtime + emsTemplate.ConvertAndSend("APP.TESTING", msgText); + AssertRecievedHelloWorldMessage(msgText, emsTemplate.ReceiveAndConvert("APP.TESTING")); + + //Now using default destination set via property + emsTemplate.DefaultDestinationName = "APP.TESTING"; + emsTemplate.ConvertAndSend(msgText); + AssertRecievedHelloWorldMessage(msgText, emsTemplate.ReceiveAndConvert()); + + //Now using destination oject + Destination destination = (Destination)lookupContext.Lookup(queueName); + + emsTemplate.ConvertAndSend(destination, msgText); + AssertRecievedHelloWorldMessage(msgText, emsTemplate.ReceiveAndConvert(destination)); + } + + [Test] + public void SimpleMessageListenerContainer() + { + + } + + private void AssertRecievedHelloWorldMessage(string msgText, object message) + { + Assert.NotNull(message); + string text = message as string; + Assert.NotNull(text); + Assert.AreEqual(msgText, text); } #region Overrides of AbstractDependencyInjectionSpringContextTests diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.xml b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.xml index e2429a08..a8306fe2 100644 --- a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.xml +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/EmsTemplateTests.xml @@ -44,6 +44,10 @@ + + + + diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/SimpleGateway.cs b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/SimpleGateway.cs index 9827ea24..9dc8e826 100644 --- a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/SimpleGateway.cs +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Core/SimpleGateway.cs @@ -8,7 +8,7 @@ namespace Spring.Messaging.Ems.Core public class SimpleGateway : EmsGatewaySupport { public void Publish(string ticker, double price) - { + { EmsTemplate.SendWithDelegate("APP.STOCK.MARKETDATA", delegate(ISession session) { diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.cs b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.cs new file mode 100644 index 00000000..94f9c103 --- /dev/null +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.cs @@ -0,0 +1,69 @@ +#region License + +/* + * Copyright 2002-2009 the original author or authors. + * + * Licensed 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. + */ + +#endregion + +using System.Threading; +using NUnit.Framework; +using Spring.Messaging.Ems.Core; +using Spring.Testing.NUnit; + +namespace Spring.Messaging.Ems.Listener +{ + /// + /// Integration tests for SimpleMessageListenerContainer + /// + /// Mark Pollack + [TestFixture] + public class SimpleMessageListenerContainerTests : AbstractDependencyInjectionSpringContextTests + { + protected SimpleGateway simpleGateway; + + protected SimpleMessageListener simpleMessageListener; + + + /// + /// Enable DI based on protected field names + /// + public SimpleMessageListenerContainerTests() + { + this.PopulateProtectedVariables = true; + } + + [Test] + public void SendAndRecieveAsync() + { + Assert.AreEqual(0, simpleMessageListener.MessageCount); + simpleGateway.Publish("CSCO", 123.45); + Thread.Sleep(1000); + Assert.AreEqual(1, simpleMessageListener.MessageCount); + + } + + #region Overrides of AbstractDependencyInjectionSpringContextTests + + protected override string[] ConfigLocations + { + get { return new string[] { "assembly://Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Listener/SimpleMessageListenerContainerTests.xml" }; } + + } + + #endregion + } + +} \ No newline at end of file diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.xml b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.xml new file mode 100644 index 00000000..8e82c630 --- /dev/null +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Messaging/Ems/Listener/SimpleMessageListenerContainerTests.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.csproj b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.csproj index f433d4da..00147ac9 100644 --- a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.csproj +++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.csproj @@ -48,6 +48,10 @@ False ..\..\..\lib\Net\2.0\TIBCO.EMS.dll + + False + ..\..\..\lib\Net\2.0\TIBCO.EMS.ADMIN.dll + @@ -60,6 +64,7 @@ + @@ -96,6 +101,9 @@ + + +