You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2011/02/09 01:45:42 UTC
svn commit: r1068709 -
/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs
Author: jgomes
Date: Wed Feb 9 00:45:42 2011
New Revision: 1068709
URL: http://svn.apache.org/viewvc?rev=1068709&view=rev
Log:
Clean up Uri comparisons to account for parameter re-ordering by StringDictionary.
Modified:
activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs
Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs?rev=1068709&r1=1068708&r2=1068709&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/URISupportTest.cs Wed Feb 9 00:45:42 2011
@@ -17,9 +17,7 @@
using System;
using System.Collections.Specialized;
-
using Apache.NMS.Util;
-
using NUnit.Framework;
namespace Apache.NMS.Test
@@ -27,245 +25,252 @@ namespace Apache.NMS.Test
[TestFixture()]
public class URISupportTest
{
- protected void AssertMapKey(StringDictionary map, String key, Object expected)
- {
- Assert.AreEqual(expected, map[key], "Map key: " + key);
- }
-
- [Test]
- public void TestCreateSupportedUriVariations(
- [Values("tcp://127.0.0.1:61616",
- "tcp:127.0.0.1:61616",
- "failover:tcp://127.0.0.1:61616",
- "failover:(tcp://127.0.0.1:61616)",
- "failover://(tcp://127.0.0.1:61616)",
- "failover://(tcp://127.0.0.1:61616,tcp:192.168.0.1:61616)",
- "activemq:failover:(tcp://localhost:61616)",
- "activemq:failover:(tcp://${activemqhost}:61616)")]
- string uriString)
- {
- Uri result = URISupport.CreateCompatibleUri(NMSTestSupport.ReplaceEnvVar(uriString));
-
- Assert.IsNotNull(result);
- }
-
- [Test]
- public void TestParseCompositeWithFragment()
- {
- string uriString =
- "failover:(tcp://localhost:61616,ssl://remotehost:61617?param=true#fragment)#fragment";
-
- URISupport.CompositeData rc = URISupport.ParseComposite(new Uri(uriString));
-
- Assert.IsTrue(rc.Components.Length == 2);
- Assert.AreEqual("failover", rc.Scheme);
- Assert.AreEqual("#fragment", rc.Fragment);
-
- Uri uri1 = rc.Components[0];
- Uri uri2 = rc.Components[1];
-
- Assert.AreEqual("tcp", uri1.Scheme);
- Assert.AreEqual("ssl", uri2.Scheme);
- Assert.AreEqual("localhost", uri1.Host);
- Assert.AreEqual("remotehost", uri2.Host);
- Assert.AreEqual(61616, uri1.Port);
- Assert.AreEqual(61617, uri2.Port);
- Assert.IsTrue(String.IsNullOrEmpty(uri1.Fragment));
- Assert.IsNotNull(uri2.Fragment);
- Assert.AreEqual("#fragment", uri2.Fragment);
- Assert.AreEqual("?param=true", uri2.Query);
- }
+ protected void AssertMapKey(StringDictionary map, String key, Object expected)
+ {
+ Assert.AreEqual(expected, map[key], "Map key: " + key);
+ }
- [Test]
- public void TestCreateRemainingUriNonComposite()
- {
- string uriStringNoParams = "tcp://localhost:61616";
- string uriStringWithParams = "tcp://localhost:61616?param1=true¶m2=false";
+ [Test]
+ public void TestCreateSupportedUriVariations(
+ [Values("tcp://127.0.0.1:61616",
+ "tcp:127.0.0.1:61616",
+ "failover:tcp://127.0.0.1:61616",
+ "failover:(tcp://127.0.0.1:61616)",
+ "failover://(tcp://127.0.0.1:61616)",
+ "failover://(tcp://127.0.0.1:61616,tcp:192.168.0.1:61616)",
+ "activemq:failover:(tcp://localhost:61616)",
+ "activemq:failover:(tcp://${activemqhost}:61616)")]
+ string uriString)
+ {
+ Uri result = URISupport.CreateCompatibleUri(NMSTestSupport.ReplaceEnvVar(uriString));
- Uri uriNoParams = new Uri(uriStringNoParams);
- Uri uriWithParams = new Uri(uriStringWithParams);
+ Assert.IsNotNull(result);
+ }
- Uri result = URISupport.CreateRemainingUri(uriNoParams, null);
- Assert.AreEqual(uriStringNoParams, result.OriginalString);
+ [Test]
+ public void TestParseCompositeWithFragment()
+ {
+ string uriString =
+ "failover:(tcp://localhost:61616,ssl://remotehost:61617?param=true#fragment)#fragment";
- result = URISupport.CreateRemainingUri(uriWithParams, null);
- Assert.AreEqual(uriStringNoParams, result.OriginalString);
+ URISupport.CompositeData rc = URISupport.ParseComposite(new Uri(uriString));
- StringDictionary parameters = new StringDictionary();
- parameters.Add("param1", "true");
- parameters.Add("param2", "false");
+ Assert.IsTrue(rc.Components.Length == 2);
+ Assert.AreEqual("failover", rc.Scheme);
+ Assert.AreEqual("#fragment", rc.Fragment);
+
+ Uri uri1 = rc.Components[0];
+ Uri uri2 = rc.Components[1];
+
+ Assert.AreEqual("tcp", uri1.Scheme);
+ Assert.AreEqual("ssl", uri2.Scheme);
+ Assert.AreEqual("localhost", uri1.Host);
+ Assert.AreEqual("remotehost", uri2.Host);
+ Assert.AreEqual(61616, uri1.Port);
+ Assert.AreEqual(61617, uri2.Port);
+ Assert.IsTrue(String.IsNullOrEmpty(uri1.Fragment));
+ Assert.IsNotNull(uri2.Fragment);
+ Assert.AreEqual("#fragment", uri2.Fragment);
+ Assert.AreEqual("?param=true", uri2.Query);
+ }
- result = URISupport.CreateRemainingUri(uriNoParams, parameters);
- Assert.AreEqual(uriWithParams, result.OriginalString);
- }
+ [Test]
+ public void TestCreateRemainingUriNonComposite()
+ {
+ string uriStringNoParams = "tcp://localhost:61616";
+ string uriStringWithParams1 = "tcp://localhost:61616?param1=true¶m2=false";
+ string uriStringWithParams2 = "tcp://localhost:61616?param2=false¶m1=true";
+
+ Uri uriNoParams = new Uri(uriStringNoParams);
+ Uri uriWithParams1 = new Uri(uriStringWithParams1);
+
+ Uri result = URISupport.CreateRemainingUri(uriNoParams, null);
+ Assert.AreEqual(uriStringNoParams, result.OriginalString);
+
+ result = URISupport.CreateRemainingUri(uriWithParams1, null);
+ Assert.AreEqual(uriStringNoParams, result.OriginalString);
+
+ StringDictionary parameters = new StringDictionary();
+ parameters.Add("param1", "true");
+ parameters.Add("param2", "false");
+
+ result = URISupport.CreateRemainingUri(uriNoParams, parameters);
+ // Have to test for reordering of parameters. The StringDictionary that is used internally
+ // does not guarantee ordering of parameters. Out of order parameters are equivalent.
+ // We just want to test that they were created successfully.
+ bool isEqual = (0 == string.Compare(uriStringWithParams1, result.OriginalString)
+ || 0 == string.Compare(uriStringWithParams2, result.OriginalString));
+ Assert.IsTrue(isEqual, string.Format("Error creating remaining Uri: {0}", result.OriginalString));
+ }
- [Test]
- public void TestCreateRemainingUriComposite()
- {
- string uriStringNoParams = "failover:tcp://localhost:61616";
- string uriStringWithParams = "failover:tcp://localhost:61616?param1=true¶m2=false";
+ [Test]
+ public void TestCreateRemainingUriComposite()
+ {
+ string uriStringNoParams = "failover:tcp://localhost:61616";
+ string uriStringWithParams1 = "failover:tcp://localhost:61616?param1=true¶m2=false";
+ string uriStringWithParams2 = "failover:tcp://localhost:61616?param2=false¶m1=true";
- Uri uriNoParams = new Uri(uriStringNoParams);
- Uri uriWithParams = new Uri(uriStringWithParams);
+ Uri uriNoParams = new Uri(uriStringNoParams);
+ Uri uriWithParams = new Uri(uriStringWithParams1);
- Uri result = URISupport.CreateRemainingUri(uriNoParams, null);
- Assert.AreEqual(uriStringNoParams, result.OriginalString);
+ Uri result = URISupport.CreateRemainingUri(uriNoParams, null);
+ Assert.AreEqual(uriStringNoParams, result.OriginalString);
- result = URISupport.CreateRemainingUri(uriWithParams, null);
- Assert.AreEqual(uriStringNoParams, result.OriginalString);
+ result = URISupport.CreateRemainingUri(uriWithParams, null);
+ Assert.AreEqual(uriStringNoParams, result.OriginalString);
- StringDictionary parameters = new StringDictionary();
- parameters.Add("param1", "true");
- parameters.Add("param2", "false");
+ StringDictionary parameters = new StringDictionary();
+ parameters.Add("param1", "true");
+ parameters.Add("param2", "false");
- result = URISupport.CreateRemainingUri(uriNoParams, parameters);
- Assert.AreEqual(uriWithParams, result.OriginalString);
+ result = URISupport.CreateRemainingUri(uriNoParams, parameters);
+ bool isEqual = (0 == string.Compare(uriStringWithParams1, result.OriginalString)
+ || 0 == string.Compare(uriStringWithParams2, result.OriginalString));
+ Assert.IsTrue(isEqual, string.Format("Error creating remaining Uri: {0}", result.OriginalString));
- // Now test a Comopsoite with parends.
+ // Now test a Composite with parens.
- uriStringNoParams = "failover:(tcp://localhost:61616)";
- uriStringWithParams = "failover:(tcp://localhost:61616?param1=true¶m2=false)";
+ uriStringNoParams = "failover:(tcp://localhost:61616)";
+ uriStringWithParams1 = "failover:(tcp://localhost:61616)?param1=true¶m2=false";
+ uriStringWithParams2 = "failover:(tcp://localhost:61616)?param2=false¶m1=true";
- uriNoParams = new Uri(uriStringNoParams);
- uriWithParams = new Uri(uriStringWithParams);
+ uriNoParams = new Uri(uriStringNoParams);
+ uriWithParams = new Uri(uriStringWithParams1);
- result = URISupport.CreateRemainingUri(uriNoParams, null);
- Assert.AreEqual(uriStringNoParams, result.OriginalString);
+ result = URISupport.CreateRemainingUri(uriNoParams, null);
+ Assert.AreEqual(uriStringNoParams, result.OriginalString);
- result = URISupport.CreateRemainingUri(uriWithParams, null);
- Assert.AreNotEqual(uriStringNoParams, result.OriginalString);
+ result = URISupport.CreateRemainingUri(uriWithParams, null);
+ Assert.AreNotEqual(uriStringNoParams, result.OriginalString);
- result = URISupport.CreateRemainingUri(uriNoParams, parameters);
- Assert.AreNotEqual(uriWithParams, result.OriginalString);
+ result = URISupport.CreateRemainingUri(uriNoParams, parameters);
+ isEqual = (0 == string.Compare(uriStringWithParams1, result.OriginalString)
+ || 0 == string.Compare(uriStringWithParams2, result.OriginalString));
+ Assert.IsTrue(isEqual, string.Format("Error creating remaining Uri: {0}", result.OriginalString));
- string queryString = URISupport.CreateQueryString(parameters);
- Assert.AreEqual(uriNoParams.OriginalString + "?" + queryString, result.OriginalString);
- }
+ string queryString = URISupport.CreateQueryString(parameters);
+ Assert.AreEqual(uriNoParams.OriginalString + "?" + queryString, result.OriginalString);
+ }
[Test]
- public void TestEmptyCompositePath()
+ public void TestEmptyCompositePath()
{
- URISupport.CompositeData data = URISupport.ParseComposite(
- new Uri("broker:()/localhost?persistent=false"));
-
- Assert.AreEqual(0, data.Components.Length);
- }
+ URISupport.CompositeData data = URISupport.ParseComposite(new Uri("broker:()/localhost?persistent=false"));
+ Assert.AreEqual(0, data.Components.Length);
+ }
[Test]
- public void TestCompositePath()
+ public void TestCompositePath()
{
- URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:(test:path)/path"));
- Assert.AreEqual("path", data.Path);
- data = URISupport.ParseComposite(new Uri("test:test:path"));
- Assert.IsNull(data.Path);
- }
+ URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:(test:path)/path"));
+ Assert.AreEqual("path", data.Path);
+ data = URISupport.ParseComposite(new Uri("test:test:path"));
+ Assert.IsNull(data.Path);
+ }
[Test]
- public void TestSimpleComposite()
+ public void TestSimpleComposite()
{
- URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:tcp://part1"));
- Assert.AreEqual(1, data.Components.Length);
- }
+ URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:tcp://part1"));
+ Assert.AreEqual(1, data.Components.Length);
+ }
[Test]
- public void TestComposite()
- {
- URISupport.CompositeData data = URISupport.ParseComposite(
- new Uri("test:(part1://host,part2://(sub1://part,sube2:part))"));
- Assert.AreEqual(2, data.Components.Length);
- }
+ public void TestComposite()
+ {
+ URISupport.CompositeData data = URISupport.ParseComposite(
+ new Uri("test:(part1://host,part2://(sub1://part,sub2:part))"));
+ Assert.AreEqual(2, data.Components.Length);
+ }
[Test]
- public void TestCompositeWithComponentParam()
+ public void TestCompositeWithComponentParam()
{
- URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:(part1://host?part1=true)?outside=true"));
- Assert.AreEqual(1, data.Components.Length);
- Assert.AreEqual(1, data.Parameters.Count);
- StringDictionary part1Params = URISupport.ParseParameters(data.Components[0]);
- Assert.AreEqual(1, part1Params.Count);
- Assert.IsTrue(part1Params.ContainsKey("part1"));
- }
+ URISupport.CompositeData data = URISupport.ParseComposite(new Uri("test:(part1://host?part1=true)?outside=true"));
+ Assert.AreEqual(1, data.Components.Length);
+ Assert.AreEqual(1, data.Parameters.Count);
+ StringDictionary part1Params = URISupport.ParseParameters(data.Components[0]);
+ Assert.AreEqual(1, part1Params.Count);
+ Assert.IsTrue(part1Params.ContainsKey("part1"));
+ }
[Test]
- public void TestParsingURI()
+ public void TestParsingURI()
{
- Uri source = new Uri("tcp://localhost:61626/foo/bar?cheese=Edam&x=123");
-
- StringDictionary map = URISupport.ParseParameters(source);
-
- Assert.AreEqual(2, map.Count, "Size: " + map);
- AssertMapKey(map, "cheese", "Edam");
- AssertMapKey(map, "x", "123");
-
- Uri result = URISupport.RemoveQuery(source);
+ Uri source = new Uri("tcp://localhost:61626/foo/bar?cheese=Edam&x=123");
+ StringDictionary map = URISupport.ParseParameters(source);
- Assert.AreEqual(new Uri("tcp://localhost:61626/foo/bar"), result);
- }
+ Assert.AreEqual(2, map.Count, "Size: " + map);
+ AssertMapKey(map, "cheese", "Edam");
+ AssertMapKey(map, "x", "123");
+
+ Uri result = URISupport.RemoveQuery(source);
+ Assert.AreEqual(new Uri("tcp://localhost:61626/foo/bar"), result);
+ }
[Test]
- public void TestParsingCompositeURI()
+ public void TestParsingCompositeURI()
{
- URISupport.CompositeData data = URISupport.ParseComposite(
- URISupport.CreateCompatibleUri("failover://(tcp://localhost:61616)?name=foo"));
+ URISupport.CompositeData data = URISupport.ParseComposite(
+ URISupport.CreateCompatibleUri("failover://(tcp://localhost:61616)?name=foo"));
- Assert.AreEqual(1, data.Components.Length, "one component");
- Assert.AreEqual("localhost", data.Components[0].Host, "Component Host is incorrect");
- Assert.AreEqual(61616, data.Components[0].Port, "Component Port is incorrect");
- Assert.AreEqual(1, data.Parameters.Count, "Size: " + data.Parameters);
- }
+ Assert.AreEqual(1, data.Components.Length, "one component");
+ Assert.AreEqual("localhost", data.Components[0].Host, "Component Host is incorrect");
+ Assert.AreEqual(61616, data.Components[0].Port, "Component Port is incorrect");
+ Assert.AreEqual(1, data.Parameters.Count, "Size: " + data.Parameters);
+ }
[Test]
- public void TestCheckParenthesis()
+ public void TestCheckParenthesis()
{
- String str = "fred:(((ddd))";
- Assert.IsFalse(URISupport.CheckParenthesis(str));
- str += ")";
- Assert.IsTrue(URISupport.CheckParenthesis(str));
- }
+ String str = "fred:(((ddd))";
+ Assert.IsFalse(URISupport.CheckParenthesis(str));
+ str += ")";
+ Assert.IsTrue(URISupport.CheckParenthesis(str));
+ }
- [Test]
- public void TestParseQueury()
- {
- String query1 = "?param1=false¶m2=true";
- String query2 = "param3=false¶m4=true¶m5=foo";
-
- StringDictionary results = URISupport.ParseQuery(query1);
-
- Assert.IsTrue(results.Count == 2);
- Assert.AreEqual("false", results["param1"]);
- Assert.AreEqual("true", results["param2"]);
-
- results = URISupport.ParseQuery(query2);
-
- Assert.IsTrue(results.Count == 3);
- Assert.AreEqual("false", results["param3"]);
- Assert.AreEqual("true", results["param4"]);
- Assert.AreEqual("foo", results["param5"]);
+ [Test]
+ public void TestParseQueury()
+ {
+ String query1 = "?param1=false¶m2=true";
+ String query2 = "param3=false¶m4=true¶m5=foo";
- String query3 = "?param";
+ StringDictionary results = URISupport.ParseQuery(query1);
- try
- {
- URISupport.ParseQuery(query3);
- Assert.Fail("Should have thrown an Exception on invalid parameter.");
- }
- catch
- {
- }
- }
+ Assert.IsTrue(results.Count == 2);
+ Assert.AreEqual("false", results["param1"]);
+ Assert.AreEqual("true", results["param2"]);
+
+ results = URISupport.ParseQuery(query2);
+
+ Assert.IsTrue(results.Count == 3);
+ Assert.AreEqual("false", results["param3"]);
+ Assert.AreEqual("true", results["param4"]);
+ Assert.AreEqual("foo", results["param5"]);
+
+ String query3 = "?param";
+
+ try
+ {
+ URISupport.ParseQuery(query3);
+ Assert.Fail("Should have thrown an Exception on invalid parameter.");
+ }
+ catch
+ {
+ }
+ }
[Test]
- public void TestCreateWithQuery()
+ public void TestCreateWithQuery()
{
- Uri source = new Uri("vm://localhost");
- Uri dest = URISupport.CreateUriWithQuery(source, "network=true&one=two");
-
- Assert.AreEqual(2, URISupport.ParseParameters(dest).Count, "correct param count");
- Assert.AreEqual(source.Host, dest.Host, "same uri, host");
- Assert.AreEqual(source.Scheme, dest.Scheme, "same uri, scheme");
- Assert.IsFalse(dest.Query.Equals(source.Query), "same uri, ssp");
- }
+ Uri source = new Uri("vm://localhost");
+ Uri dest = URISupport.CreateUriWithQuery(source, "network=true&one=two");
+ Assert.AreEqual(2, URISupport.ParseParameters(dest).Count, "correct param count");
+ Assert.AreEqual(source.Host, dest.Host, "same uri, host");
+ Assert.AreEqual(source.Scheme, dest.Scheme, "same uri, scheme");
+ Assert.IsFalse(dest.Query.Equals(source.Query), "same uri, ssp");
+ }
}
}