Equals() private method

private Equals ( DataKey value ) : bool
value DataKey
return bool
		public void DataKey_Equals ()
		{
			var dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			var key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			var key2 = new DataKey (dict);

			Assert.IsTrue (key1.Equals (key2), "#A1-1");
			Assert.IsTrue (key2.Equals (key1), "#A1-2");

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key2", "value2");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict);

			Assert.IsFalse (key1.Equals (key2), "#A2-1");
			Assert.IsFalse (key2.Equals (key1), "#A2-2");

			dict = new OrderedDictionary ();
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict);

			Assert.IsFalse (key1.Equals (key2), "#A3-1");
			Assert.IsFalse (key2.Equals (key1), "#A3-2");

			dict = new OrderedDictionary ();
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			key2 = new DataKey (dict);
			Assert.IsTrue (key1.Equals (key2), "#A4-1");
			Assert.IsTrue (key2.Equals (key1), "#A4-2");

			dict = new OrderedDictionary ();
			key1 = new DataKey (null);
			key2 = new DataKey (dict);
			Assert.IsTrue (key1.Equals (key2), "#A5-1");
			// Throws NREX on .NET
			//Assert.IsTrue (key2.Equals (key1), "#A5-2");

			key1 = new DataKey (null);
			key2 = new DataKey (null);
			Assert.IsTrue (key1.Equals (key2), "#A6-1");
			Assert.IsTrue (key2.Equals (key1), "#A6-2");

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict, new string[] { "key" });

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict, new string[] { "key1" });
			Assert.IsFalse (key1.Equals (key2), "#A7-1");
			Assert.IsFalse (key2.Equals (key1), "#A7-2");

			Assert.IsFalse (key1.Equals ((DataKey) null), "#A8");

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);			
			key2 = new DataKey (null);
			// Throws NREX on .NET
			//Assert.IsFalse (key1.Equals (key2), "#A8-1");
			Assert.IsTrue (key2.Equals (key1), "#A8-2");

			key1 = new DataKey (null);
			Assert.IsFalse (key1.Equals ((DataKey) null), "#A9");

			dict = new OrderedDictionary ();
			key1 = new DataKey (dict, new string [] { "key" });

			dict = new OrderedDictionary ();
			key2 = new DataKey (dict, new string [] { "key1" });
			Assert.IsFalse (key1.Equals (key2), "#A10-1");
			Assert.IsFalse (key2.Equals (key1), "#A10-2");

			dict = new OrderedDictionary ();
			dict.Add ("KEY", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict);

			Assert.IsFalse (key1.Equals (key2), "#A11-1");
			Assert.IsFalse (key2.Equals (key1), "#A11-2");

			dict = new OrderedDictionary ();
			dict.Add ("key", "VALUE");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict);

			Assert.IsFalse (key1.Equals (key2), "#A12-1");
			Assert.IsFalse (key2.Equals (key1), "#A12-2");

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict, new string [] { "key1" });
			Assert.IsFalse (key1.Equals (key2), "#A13-1");
			Assert.IsFalse (key2.Equals (key1), "#A13-2");

			dict = new OrderedDictionary ();
			key1 = new DataKey (dict, new string [] { "key" });

			dict = new OrderedDictionary ();
			key2 = new DataKey (dict, new string [] { "KEY" });
			Assert.IsFalse (key1.Equals (key2), "#A14-1");
			Assert.IsFalse (key2.Equals (key1), "#A14-2");
			
			key1 = new DataKey (null, new string [] { "key" });
			key2 = new DataKey (null, new string [] { "key" });
			Assert.IsTrue (key1.Equals (key2), "#A15-1");
			Assert.IsTrue (key2.Equals (key1), "#A15-2");

			key1 = new DataKey (null, new string [] { "KEY" });
			key2 = new DataKey (null, new string [] { "key" });
			Assert.IsFalse (key1.Equals (key2), "#A16-1");
			Assert.IsFalse (key2.Equals (key1), "#A16-2");

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key2 = new DataKey (dict, new string [] { });

			dict = new OrderedDictionary ();
			dict.Add ("key", "value");
			dict.Add ("key1", "value1");
			key1 = new DataKey (dict);
			Assert.IsFalse (key1.Equals (key2), "#A17-1");
			Assert.IsFalse (key2.Equals (key1), "#A17-2");
		}