You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2010/11/18 22:41:35 UTC
svn commit: r1036644 - in
/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test:
messaging.test.address.cs messaging.test.connection.cs messaging.test.cs
messaging.test.csproj messaging.test.duration.cs messaging.test.message.cs
Author: chug
Date: Thu Nov 18 21:41:34 2010
New Revision: 1036644
URL: http://svn.apache.org/viewvc?rev=1036644&view=rev
Log:
QPID-2953 Qpid Cpp Messaging .NET Binding does not include unit tests.
This checkin converts project test\messaging.test from an EXE to a DLL usable by NUnit.
Tests for several managed objects are included in new files.
Added:
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.address.cs
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.connection.cs
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.duration.cs
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.message.cs
Modified:
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs
qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj
Added: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.address.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.address.cs?rev=1036644&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.address.cs (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.address.cs Thu Nov 18 21:41:34 2010
@@ -0,0 +1,157 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+namespace Org.Apache.Qpid.Messaging.UnitTest
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using Org.Apache.Qpid.Messaging;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class AddressTests
+ {
+ [SetUp]
+ public void SetUp()
+ {
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ }
+
+ //
+ // Address test
+ //
+ [Test]
+ public void AddressConstructor_Empty()
+ {
+ Address addr = new Address();
+
+ StringAssert.IsMatch("", addr.ToStr());
+
+ StringAssert.IsMatch("", addr.Name);
+ StringAssert.IsMatch("", addr.Subject);
+ Dictionary<string, object> opts = addr.Options;
+ Assert.AreEqual(0, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+ }
+
+
+ [Test]
+ public void AddressConstructor_Name()
+ {
+ Address addr = new Address("name1");
+
+ StringAssert.IsMatch("", addr.ToStr());
+
+ StringAssert.IsMatch("name1", addr.Name);
+ StringAssert.IsMatch("", addr.Subject);
+ Dictionary<string, object> opts = addr.Options;
+ Assert.AreEqual(0, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+ }
+
+
+ [Test]
+ public void AddressConstructor_NameSubjOpts()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["one"] = 1;
+ options["two"] = "two";
+
+ Address addr = new Address("name2", "subj2", options);
+
+ StringAssert.IsMatch("name2/subj2;{node:{type:}, one:1, two:two}", addr.ToStr());
+
+ StringAssert.IsMatch("name2", addr.Name);
+ StringAssert.IsMatch("subj2", addr.Subject);
+ Dictionary<string, object> opts = addr.Options;
+ Assert.AreEqual(3, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+ }
+
+ [Test]
+ public void AddressConstructor_NameSubjOptsType()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["one"] = 1;
+ options["two"] = "two";
+
+ Address addr = new Address("name3", "subj3", options, "type3");
+
+ StringAssert.IsMatch("name3/subj3;{node:{type:type3}, one:1, two:two}", addr.ToStr());
+
+ StringAssert.IsMatch("name3", addr.Name);
+ StringAssert.IsMatch("subj3", addr.Subject);
+ Dictionary<string, object> opts = addr.Options;
+ Assert.AreEqual(3, opts.Count);
+ StringAssert.IsMatch("type3", addr.Type);
+ }
+
+ [Test]
+ public void AddressProperty()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["one"] = 1;
+ options["two"] = "two";
+ options["pi"] = 3.14159;
+ Dictionary<string, object> opts;
+
+ Address addr = new Address();
+
+ addr.Name = "name4";
+
+ StringAssert.IsMatch("name4", addr.Name);
+ StringAssert.IsMatch("", addr.Subject);
+ opts = addr.Options;
+ Assert.AreEqual(0, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+
+ addr.Subject = "subject4";
+
+ StringAssert.IsMatch("name4", addr.Name);
+ StringAssert.IsMatch("subject4", addr.Subject);
+ opts = addr.Options;
+ Assert.AreEqual(0, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+
+ addr.Type = "type4";
+
+ StringAssert.IsMatch("name4", addr.Name);
+ StringAssert.IsMatch("subject4", addr.Subject);
+ opts = addr.Options;
+ Assert.AreEqual(1, opts.Count);
+ StringAssert.IsMatch("type4", addr.Type);
+
+ addr.Options = options;
+
+ StringAssert.IsMatch("name4", addr.Name);
+ StringAssert.IsMatch("subject4", addr.Subject);
+ opts = addr.Options;
+ Assert.AreEqual(3, opts.Count);
+ StringAssert.IsMatch("", addr.Type);
+ }
+
+ }
+}
Added: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.connection.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.connection.cs?rev=1036644&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.connection.cs (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.connection.cs Thu Nov 18 21:41:34 2010
@@ -0,0 +1,100 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+namespace Org.Apache.Qpid.Messaging.UnitTest
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using Org.Apache.Qpid.Messaging;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class ConnectionTests
+ {
+ [SetUp]
+ public void SetUp()
+ {
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ }
+
+ //
+ // Doing without a real connection
+ //
+ [Test]
+ public void ConnectionCreate_1()
+ {
+ Connection myConn = new Connection("url");
+ Assert.IsFalse(myConn.IsOpen);
+ }
+
+ [Test]
+ public void ConnectionCreate_2()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["id"] = 987654321;
+ options["name"] = "Widget";
+ options["percent"] = 0.99;
+
+ Connection myConn = new Connection("url", options);
+ Assert.IsFalse(myConn.IsOpen);
+ }
+
+ [Test]
+ public void ConnectionCreate_3()
+ {
+ Connection myConn = new Connection("url", "{reconnect:True}");
+ Assert.IsFalse(myConn.IsOpen);
+ }
+
+ [Test]
+ public void ConnectionSetOption()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["id"] = 987654321;
+ options["name"] = "Widget";
+ options["percent"] = 0.99;
+
+ Connection myConn = new Connection("url", options);
+ myConn.SetOption("name", "purple");
+
+ Assert.IsFalse(myConn.IsOpen);
+ }
+
+ [Test]
+ public void ConnectionClose()
+ {
+ Dictionary<string, object> options = new Dictionary<string, object>();
+ options["id"] = 987654321;
+ options["name"] = "Widget";
+ options["percent"] = 0.99;
+
+ Connection myConn = new Connection("url", options);
+ myConn.Close();
+
+ Assert.IsFalse(myConn.IsOpen);
+ }
+ }
+}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs?rev=1036644&r1=1036643&r2=1036644&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.cs Thu Nov 18 21:41:34 2010
@@ -19,209 +19,58 @@
*
*/
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Org.Apache.Qpid.Messaging;
+//
+// Note:
+// NUnit tests require all libraries to be on the project path
+// or in the project working directory. If an unmanaged DLL
+// (boost_xxx, for instance) is missing then NUnit will give
+// the error message:
+// System.IO.FileNotFoundException :
+// The specified module could not be found.
+// (Exception from HRESULT: 0x8007007E)
+//
+// Users may need to adjust this project's reference to the
+// NUnit assembly.
+//
-namespace Org.Apache.Qpid.Messaging
+namespace Org.Apache.Qpid.Messaging.UnitTest
{
- class Program
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using Org.Apache.Qpid.Messaging;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class BasicTests
{
- static void Main(string[] args)
+ [SetUp]
+ public void SetUp()
{
- //
- // Duration test - stub until proper nunit tests are ready...
-
- Duration myDuration = new Duration(1234);
-
- Console.WriteLine("Duration should be : 1234, is : {0}",
- myDuration.Milliseconds);
-
- Console.WriteLine("Duration FOREVER should be : 1.8x10^19 (realbig), is : {0}",
- DurationConstants.FORVER.Milliseconds);
-
- Console.WriteLine("Duration IMMEDIATE should be : 0, is : {0}",
- DurationConstants.IMMEDIATE.Milliseconds);
-
- Console.WriteLine("Duration SECOND should be : 1,000, is : {0}",
- DurationConstants.SECOND.Milliseconds);
-
- Console.WriteLine("Duration MINUTE should be : 60,000, is : {0}",
- DurationConstants.MINUTE.Milliseconds);
-
- Duration isInfinite = new Duration();
-
- Console.WriteLine("Duration() should be : realbig, is : {0}",
- isInfinite.Milliseconds);
-
- Duration fiveMinutes = new Duration(DurationConstants.MINUTE.Milliseconds * 5);
- Console.WriteLine("Duration 5MINUTE should be : 300,000, is : {0}",
- fiveMinutes.Milliseconds);
+ }
- Duration fiveSec = DurationConstants.SECOND * 5;
- Console.WriteLine("Duration 5SECOND should be : 5,000 is : {0}",
- fiveSec.Milliseconds);
- //
- // and so on
- //
+ [TearDown]
+ public void TearDown()
+ {
+ }
+ //
+ // Types representing amqp.map and amqp.list
+ //
+ [Test]
+ public void TypeTestForDictionary()
+ {
Dictionary<string, object> dx = new Dictionary<string, object>();
+
+ StringAssert.Contains("System.Collections.Generic.Dictionary`2[System.String,System.Object]", dx.GetType().ToString());
+ }
- Console.WriteLine("Dictionary.GetType() {0}", dx.GetType());
-
- //
- // Address test
- //
- Address aEmpty = new Address();
- Address aStr = new Address("rare");
-
- Dictionary<string, object> options = new Dictionary<string,object>();
- options["one"] = 1;
- options["two"] = "two";
-
- Address aSubj = new Address("rare2", "subj", options);
-
- Address aType = new Address ("check3", "subj", options, "hot");
-
- Console.WriteLine("aEmpty : {0}", aEmpty.ToStr());
- Console.WriteLine("aStr : {0}", aStr.ToStr());
- Console.WriteLine("aSubj : {0}", aSubj.ToStr());
- Console.WriteLine("aType : {0}", aType.ToStr());
-
- //
- // Raw message data retrieval
- //
-
- Message m2 = new Message("rarey");
- UInt64 m2Size = m2.ContentSize;
-
-
- byte[] myRaw = new byte [m2Size];
-
- m2.GetContent(myRaw);
- Console.WriteLine("Got raw array size {0}", m2Size);
- for (UInt64 i = 0; i < m2Size; i++)
- Console.Write("{0} ", myRaw[i].ToString());
- Console.WriteLine();
-
- //
- // Raw message creation
- //
- byte[] rawData = new byte[10];
- for (byte i=0; i<10; i++)
- rawData[i] = i;
- Message m3 = new Message(rawData);
-
- byte[] rawDataReadback = new byte[m3.ContentSize];
- m3.GetContent(rawDataReadback);
- for (UInt64 i = 0; i < m3.ContentSize; i++)
- Console.Write("{0} ", rawDataReadback[i].ToString());
- Console.WriteLine();
-
- //
- // Raw message from array slice
- //
- byte[] rawData4 = new byte[256];
- for (int i = 0; i <= 255; i++)
- rawData4[i] = (byte)i;
-
- Message m4 = new Message(rawData4, 246, 10);
-
- byte[] rawDataReadback4 = new byte[m4.ContentSize];
- m4.GetContent(rawDataReadback4);
- for (UInt64 i = 0; i < m4.ContentSize; i++)
- Console.Write("{0} ", rawDataReadback4[i].ToString());
- Console.WriteLine();
-
- //
- // Set content from array slice
- //
- m4.SetContent(rawData4, 100, 5);
-
- byte[] rawDataReadback4a = new byte[m4.ContentSize];
- m4.GetContent(rawDataReadback4a);
- for (UInt64 i = 0; i < m4.ContentSize; i++)
- Console.Write("{0} ", rawDataReadback4a[i].ToString());
- Console.WriteLine();
-
- //
- // Guid factoids
- //
- Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f");
- System.Type typeP = myGuid.GetType();
- System.TypeCode typeCode = System.Type.GetTypeCode(typeP);
-
- Console.WriteLine("Guid Type = {0}, TypeCode = {1}",
- typeP.ToString(), typeCode.ToString());
- // typeP="System.Guid", typeCode="Object"
- byte[] guidReadback;
- guidReadback = myGuid.ToByteArray();
-
- Console.WriteLine("GuidReadback len = {0}", guidReadback.Length);
-
- //
- // Set/Get some properties of a message
- //
- Message msgGetSet = new Message("12345");
-
- msgGetSet.Subject = "Subject";
- msgGetSet.MessageId = "MessageId";
- msgGetSet.UserId = "UserId";
- msgGetSet.CorrelationId = "CorrelationId";
- msgGetSet.Ttl = DurationConstants.SECOND;
- msgGetSet.Priority = (byte)'z';
- msgGetSet.Durable = false;
- msgGetSet.Redelivered = true;
-
- Dictionary<string, object> props = new Dictionary<string,object>();
- props.Add("firstProperty", 1);
- props.Add("secondProperty", 2);
- msgGetSet.Properties = props;
-
-
-
- Console.WriteLine("Message Subject = {0}", msgGetSet.Subject);
- Console.WriteLine("Message ContentType = {0}", msgGetSet.ContentType);
- Console.WriteLine("Message MessageId = {0}", msgGetSet.MessageId);
- Console.WriteLine("Message UserId = {0}", msgGetSet.UserId);
- Console.WriteLine("Message CorrelationId = {0}", msgGetSet.CorrelationId);
- Console.WriteLine("Message Ttl mS = {0}", msgGetSet.Ttl.Milliseconds);
- Console.WriteLine("Message Priority = {0}", msgGetSet.Priority);
- Console.WriteLine("Message Durable = {0}", msgGetSet.Durable);
- Console.WriteLine("Message Redelivered = {0}", msgGetSet.Redelivered);
-
- Dictionary<string, object> gotProps = msgGetSet.Properties;
- foreach (KeyValuePair<string, object> kvp in gotProps)
- {
- Console.WriteLine("Message Property {0} = {1}", kvp.Key, kvp.Value.ToString());
- }
-
- Console.WriteLine("Cycle through a million address copy constructions...");
- Address a1 = new Address("abc");
- Address a2 = new Address("def");
- Address a3 = new Address(a2);
- for (int i = 0; i < 1000000; i++)
- {
- a1 = a2;
- a2 = a3;
- a3 = new Address(a1);
- }
- Console.WriteLine(" ...done.");
-
- Console.WriteLine("Use each object's copy constructor");
-
- Address Address1 = new Address("abc");
- Address Address2 = new Address(Address1);
-
- Connection Connection1 = new Connection("abc");
- Connection Connection2 = new Connection(Connection1);
-
- Message Message1 = new Message("abc");
- Message Message2 = new Message(Message1);
-
-
+ [Test]
+ public void TypeTestForCollection()
+ {
+ Collection<object> cx = new Collection<object>();
+
+ StringAssert.Contains("System.Collections.ObjectModel.Collection`1[System.Object]", cx.GetType().ToString());
}
}
}
Modified: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj?rev=1036644&r1=1036643&r2=1036644&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj (original)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.csproj Thu Nov 18 21:41:34 2010
@@ -24,12 +24,29 @@ under the License.
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{AF2FBC78-266C-430C-BC29-9477AB596A36}</ProjectGuid>
- <OutputType>Exe</OutputType>
+ <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>messaging.test</RootNamespace>
<AssemblyName>messaging.test</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
+ <StartupObject>
+ </StartupObject>
+ <PublishUrl>publish\</PublishUrl>
+ <Install>true</Install>
+ <InstallFrom>Disk</InstallFrom>
+ <UpdateEnabled>false</UpdateEnabled>
+ <UpdateMode>Foreground</UpdateMode>
+ <UpdateInterval>7</UpdateInterval>
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
+ <UpdatePeriodically>false</UpdatePeriodically>
+ <UpdateRequired>false</UpdateRequired>
+ <MapFileExtensions>true</MapFileExtensions>
+ <ApplicationRevision>0</ApplicationRevision>
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
+ <UseApplicationTrust>false</UseApplicationTrust>
+ <BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -105,24 +122,42 @@ under the License.
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
+ <Reference Include="nunit.framework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>C:\Program Files (x86)\NUnit 2.5.3\bin\net-1.1\framework\nunit.framework.dll</HintPath>
</Reference>
- <Reference Include="System.Xml.Linq">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data.DataSetExtensions">
- <RequiredTargetFramework>3.5</RequiredTargetFramework>
- </Reference>
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="messaging.test.address.cs" />
+ <Compile Include="messaging.test.connection.cs" />
<Compile Include="messaging.test.cs" />
+ <Compile Include="messaging.test.duration.cs" />
+ <Compile Include="messaging.test.message.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 2.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.0 %28x86%29</ProductName>
+ <Install>false</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
+ <Visible>False</Visible>
+ <ProductName>.NET Framework 3.5</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
+ <Visible>False</Visible>
+ <ProductName>Windows Installer 3.1</ProductName>
+ <Install>true</Install>
+ </BootstrapperPackage>
+ </ItemGroup>
+ <ItemGroup>
<ProjectReference Include="..\..\src\org.apache.qpid.messaging.vcproj">
<Project>{AA5A3B83-5F98-406D-A01C-5A921467A57D}</Project>
<Name>Org.Apache.Qpid.Messaging</Name>
Added: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.duration.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.duration.cs?rev=1036644&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.duration.cs (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.duration.cs Thu Nov 18 21:41:34 2010
@@ -0,0 +1,99 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+namespace Org.Apache.Qpid.Messaging.UnitTest
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using Org.Apache.Qpid.Messaging;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class DurationTests
+ {
+ [SetUp]
+ public void SetUp()
+ {
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ }
+
+ [Test]
+ public void ValueOfUSERVALUE()
+ {
+ Duration myDuration = new Duration(1234);
+ Assert.AreEqual(1234, myDuration.Milliseconds);
+ }
+
+ [Test]
+ public void ValueOfFOREVER()
+ {
+ bool result = DurationConstants.FORVER.Milliseconds > 1.0E18;
+ Assert.True(result);
+ }
+
+ [Test]
+ public void ValueOfIMMEDIATE()
+ {
+ Assert.AreEqual(0, DurationConstants.IMMEDIATE.Milliseconds);
+ }
+
+ [Test]
+ public void ValueOfSECOND()
+ {
+ Assert.AreEqual(1000, DurationConstants.SECOND.Milliseconds);
+ }
+
+
+ [Test]
+ public void ValueOfMINUTE()
+ {
+ Assert.AreEqual(60000, DurationConstants.MINUTE.Milliseconds);
+ }
+
+ [Test]
+ public void ValueOfDefaultIsFOREVER()
+ {
+ Duration isInfinite = new Duration();
+
+ bool result = isInfinite.Milliseconds > 1.0E18;
+ Assert.True(result);
+ }
+
+ [Test]
+ public void ComputedValueFiveMinutes_1()
+ {
+ Duration fiveMinutes = new Duration(DurationConstants.MINUTE.Milliseconds * 5);
+ Assert.AreEqual(5 * 60000, fiveMinutes.Milliseconds);
+ }
+
+ [Test]
+ public void ComputedValueFiveMinutes_2()
+ {
+ Duration fiveMinutes = new Duration(5 * DurationConstants.MINUTE.Milliseconds);
+ Assert.AreEqual(5 * 60000, fiveMinutes.Milliseconds);
+ }
+ }
+}
\ No newline at end of file
Added: qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.message.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.message.cs?rev=1036644&view=auto
==============================================================================
--- qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.message.cs (added)
+++ qpid/trunk/qpid/cpp/bindings/qpid/dotnet/test/messaging.test/messaging.test.message.cs Thu Nov 18 21:41:34 2010
@@ -0,0 +1,294 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+namespace Org.Apache.Qpid.Messaging.UnitTest
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Collections.ObjectModel;
+ using Org.Apache.Qpid.Messaging;
+ using NUnit.Framework;
+
+ [TestFixture]
+ public class MessageTests
+ {
+ [SetUp]
+ public void SetUp()
+ {
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ }
+
+ [Test]
+ public void SimpleMessageSize()
+ {
+ Message m2 = new Message("rarey");
+ UInt64 m2Size = m2.ContentSize;
+ Assert.AreEqual(5, m2Size);
+ }
+
+ [Test]
+ public void SimpleMessageStringContent()
+ {
+ Message m2 = new Message("rarely");
+ string mString = m2.GetContent();
+
+ StringAssert.IsMatch("rarely", mString);
+ }
+
+ [Test]
+ public void MessageReceiveContentAsByteArray()
+ {
+ Message m2 = new Message("while");
+ UInt64 m2Size = m2.ContentSize;
+
+ byte[] myRaw = new byte [m2Size];
+
+ m2.GetContent(myRaw);
+
+ Assert.IsTrue(true);
+ }
+
+ [Test]
+ public void MessageAsByteArray()
+ {
+ byte[] rawData = new byte[10];
+ for (byte i = 0; i < 10; i++)
+ rawData[i] = i;
+ Message m3 = new Message(rawData);
+
+ byte[] readback = new byte[m3.ContentSize];
+ m3.GetContent(readback);
+
+ for (byte i = 0; i < 10; i++)
+ Assert.AreEqual(i, readback[i]);
+ }
+
+ [Test]
+ public void MessageAsByteArraySlice()
+ {
+ byte[] rawData = new byte[10];
+ for (byte i = 0; i < 10; i++)
+ rawData[i] = i;
+ Message m3 = new Message(rawData, 1, 8);
+
+ Assert.AreEqual(8, m3.ContentSize);
+
+ byte[] readback = new byte[m3.ContentSize];
+ m3.GetContent(readback);
+
+ for (byte i = 0; i < 8; i++)
+ Assert.AreEqual(i + 1, readback[i]);
+ }
+
+
+ [Test]
+ public void MessageProperties()
+ {
+ Message msgGetSet = new Message("12345");
+
+ msgGetSet.Subject = "Subject";
+ msgGetSet.MessageId = "MessageId";
+ msgGetSet.UserId = "UserId";
+ msgGetSet.CorrelationId = "CorrelationId";
+ msgGetSet.Ttl = DurationConstants.SECOND;
+ msgGetSet.Priority = (byte)'z';
+ msgGetSet.Durable = false;
+ msgGetSet.Redelivered = true;
+
+ Dictionary<string, object> props = new Dictionary<string,object>();
+ props.Add("firstProperty", 1);
+ props.Add("secondProperty", 2);
+ msgGetSet.Properties = props;
+
+ Address replyToAddr = new Address("replyTo");
+ replyToAddr.Subject = "topsecret";
+ msgGetSet.ReplyTo = replyToAddr;
+
+ StringAssert.IsMatch("Subject", msgGetSet.Subject);
+ StringAssert.IsMatch("", msgGetSet.ContentType);
+ StringAssert.IsMatch("MessageId", msgGetSet.MessageId);
+ StringAssert.IsMatch("UserId", msgGetSet.UserId);
+ StringAssert.IsMatch("CorrelationId", msgGetSet.CorrelationId);
+ Assert.AreEqual(1000, msgGetSet.Ttl.Milliseconds);
+ Assert.AreEqual((byte)'z', msgGetSet.Priority);
+ Assert.IsFalse( msgGetSet.Durable);
+ Assert.IsTrue( msgGetSet.Redelivered);
+
+ Dictionary<string, object> gotProps = msgGetSet.Properties;
+ StringAssert.IsMatch("1", gotProps["firstProperty"].ToString());
+ StringAssert.IsMatch("2", gotProps["secondProperty"].ToString());
+
+ Address gotReply = msgGetSet.ReplyTo;
+ StringAssert.IsMatch("replyTo", gotReply.Name);
+ StringAssert.IsMatch("topsecret", msgGetSet.ReplyTo.Subject);
+ }
+
+ [Test]
+ public void SimpleMessageCopy()
+ {
+ Message m2 = new Message("rarely");
+ Message m3 = m2;
+
+ StringAssert.IsMatch("rarely", m3.GetContent());
+ }
+
+ [Test]
+ public void MessageAsMap_AllVariableTypes()
+ {
+ //
+ // Create structured content for the message. This example builds a
+ // map of items including a nested map and a list of values.
+ //
+ Dictionary<string, object> content = new Dictionary<string, object>();
+ Dictionary<string, object> subMap = new Dictionary<string, object>();
+ Collection<object> colors = new Collection<object>();
+
+ // add simple types
+ content["id"] = 987654321;
+ content["name"] = "Widget";
+ content["percent"] = 0.99;
+
+ // add nested amqp/map
+ subMap["name"] = "Smith";
+ subMap["number"] = 354;
+ content["nestedMap"] = subMap;
+
+ // add an amqp/list
+ colors.Add("red");
+ colors.Add("green");
+ colors.Add("white");
+ // list contains null value
+ colors.Add(null);
+ content["colorsList"] = colors;
+
+ // add one of each supported amqp data type
+ bool mybool = true;
+ content["mybool"] = mybool;
+
+ byte mybyte = 4;
+ content["mybyte"] = mybyte;
+
+ UInt16 myUInt16 = 5;
+ content["myUInt16"] = myUInt16;
+
+ UInt32 myUInt32 = 6;
+ content["myUInt32"] = myUInt32;
+
+ UInt64 myUInt64 = 7;
+ content["myUInt64"] = myUInt64;
+
+ char mychar = 'h';
+ content["mychar"] = mychar;
+
+ Int16 myInt16 = 9;
+ content["myInt16"] = myInt16;
+
+ Int32 myInt32 = 10;
+ content["myInt32"] = myInt32;
+
+ Int64 myInt64 = 11;
+ content["myInt64"] = myInt64;
+
+ Single mySingle = (Single)12.12;
+ content["mySingle"] = mySingle;
+
+ Double myDouble = 13.13;
+ content["myDouble"] = myDouble;
+
+ Guid myGuid = new Guid("000102030405060708090a0b0c0d0e0f");
+ content["myGuid"] = myGuid;
+
+ content["myNull"] = null;
+
+ // Create the message
+ Message message = new Message(content);
+
+ // Copy the message
+ Message rxMsg = message;
+
+ // Extract the content
+ Dictionary<string, object> rxContent = new Dictionary<string, object>();
+
+ rxMsg.GetContent(rxContent);
+
+ Dictionary<string, object> rxSubMap = (Dictionary<string, object>)rxContent["nestedMap"];
+
+ Collection<object> rxColors = (Collection<object>)rxContent["colorsList"];
+
+ StringAssert.IsMatch("System.Boolean", rxContent["mybool"].GetType().ToString());
+ bool rxbool = (bool)rxContent["mybool"];
+
+ StringAssert.IsMatch("System.SByte", rxContent["mybyte"].GetType().ToString());
+ sbyte rxbyte = (sbyte)rxContent["mybyte"];
+
+ StringAssert.IsMatch("System.UInt16", rxContent["myUInt16"].GetType().ToString());
+ UInt16 rxUInt16 = (UInt16)rxContent["myUInt16"];
+
+ StringAssert.IsMatch("System.UInt32", rxContent["myUInt32"].GetType().ToString());
+ UInt32 rxUInt32 = (UInt32)rxContent["myUInt32"];
+
+ StringAssert.IsMatch("System.UInt64", rxContent["myUInt64"].GetType().ToString());
+ UInt64 rxUInt64 = (UInt64)rxContent["myUInt64"];
+
+ StringAssert.IsMatch("System.Int32", rxContent["mychar"].GetType().ToString());
+ char rxchar = System.Convert.ToChar(rxContent["mychar"]);
+
+ StringAssert.IsMatch("System.Int16", rxContent["myInt16"].GetType().ToString());
+ Int16 rxInt16 = (Int16)rxContent["myInt16"];
+
+ StringAssert.IsMatch("System.Int32", rxContent["myInt32"].GetType().ToString());
+ Int32 rxInt32 = (Int32)rxContent["myInt32"];
+
+ StringAssert.IsMatch("System.Int64", rxContent["myInt64"].GetType().ToString());
+ Int64 rxInt64 = (Int64)rxContent["myInt64"];
+
+ StringAssert.IsMatch("System.Single", rxContent["mySingle"].GetType().ToString());
+ Single rxSingle = (Single)rxContent["mySingle"];
+
+ StringAssert.IsMatch("System.Double", rxContent["myDouble"].GetType().ToString());
+ Double rxDouble = (Double)rxContent["myDouble"];
+
+ StringAssert.IsMatch("System.Guid", rxContent["myGuid"].GetType().ToString());
+ Guid rxGuid = (Guid)rxContent["myGuid"];
+
+ // Verify the values
+
+ StringAssert.IsMatch("Smith", rxSubMap["name"].ToString());
+ Assert.AreEqual(4, rxColors.Count);
+ Assert.IsTrue(rxbool);
+ Assert.AreEqual(4, rxbyte);
+ Assert.AreEqual(5, rxUInt16);
+ Assert.AreEqual(6, rxUInt32);
+ Assert.AreEqual(7, rxUInt64);
+ Assert.AreEqual((char)'h', rxchar);
+ Assert.AreEqual(9, rxInt16);
+ Assert.AreEqual(10, rxInt32);
+ Assert.AreEqual(11, rxInt64);
+ Assert.AreEqual((Single)12.12, rxSingle);
+ Assert.AreEqual((Double)13.13, rxDouble);
+ StringAssert.IsMatch("00010203-0405-0607-0809-0a0b0c0d0e0f", rxGuid.ToString());
+ }
+ }
+}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org