public void DeepClone_KeyValuePairWithNullItem(TypeModel model)
		{
			var obj = new KeyValuePairWrapper()
			{
				Property = new KeyValuePair<int, ItemClass>(12, null)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.Field.Key, clone.Field.Key);
			Assert.IsNull(clone.Property.Value);
		}
		public void DeepClone_KeyValuePairAsField(TypeModel model)
		{
			var obj = new KeyValuePairWrapper()
			{
				Field = new KeyValuePair<int, ItemClass>(12, new ItemClass() { Message = "ABC" })
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.Field.Key, clone.Field.Key);
			Assert.AreEqual(obj.Field.Value.Message, clone.Field.Value.Message);
		}
		public void DeepClone_KeyValuePairWithRef(TypeModel model)
		{
			var itemClass = new ItemClass() { Message = "ABC" };
			var obj = new KeyValuePairWrapper()
			{
				Reference = new KeyValuePair<IItemClass, IItemClass>(itemClass, itemClass)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.Reference.Key.Message, clone.Reference.Key.Message);

			Assert.IsTrue(object.ReferenceEquals(obj.Reference.Key, obj.Reference.Value), "Original reference failed");
			Assert.IsTrue(object.ReferenceEquals(clone.Reference.Key, clone.Reference.Value), "Clone reference not maintained");
		}
		public void DeepClone_KeyValuePairWithRefDefinedBefore(TypeModel model)
		{
			var itemClass = new ItemClass() { Message = "ABC" };
			var obj = new KeyValuePairWrapper()
			{
				ListRefDefinedBefore = new KeyValuePair<IItemClass, List<IItemClass>>
				(
					itemClass,
					new List<IItemClass>() { new ItemClass() { Message = "Stewie" }, itemClass }
				)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.ListRefDefinedBefore.Key.Message, clone.ListRefDefinedBefore.Key.Message);

			Assert.AreEqual(obj.ListRefDefinedBefore.Value.Count, clone.ListRefDefinedBefore.Value.Count);
			Assert.AreEqual(obj.ListRefDefinedBefore.Value[0].Message, clone.ListRefDefinedBefore.Value[0].Message);
			Assert.AreEqual(obj.ListRefDefinedBefore.Value[1].Message, clone.ListRefDefinedBefore.Value[1].Message);

			Assert.IsTrue(object.ReferenceEquals(obj.ListRefDefinedBefore.Key, obj.ListRefDefinedBefore.Value[1]), "Original reference failed");
			Assert.IsTrue(object.ReferenceEquals(clone.ListRefDefinedBefore.Key, clone.ListRefDefinedBefore.Value[1]), "Clone reference not maintained");
		}
Exemplo n.º 5
0
 private bool IsZoneLayerAlreadyAdded(KeyValuePairWrapper keyValuePairWrapper)
 {
     return(MapControl.Map.Layers.OfType <EidssUserBufZoneLayer>().Any(layer => (layer).LayerDbGuid == keyValuePairWrapper.Key));
 }
		public void DeepClone_KeyValuePairWithList(TypeModel model)
		{
			var obj = new KeyValuePairWrapper()
			{
				WithList = new KeyValuePair<int, List<IItemClass>>
				(
					12, new List<IItemClass>() { new ItemClass() { Message = "Homer" }, null, new ItemClass() { Message = "Simpsons" } }
				)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.WithList.Key, clone.WithList.Key);
			Assert.AreEqual(obj.WithList.Value.Count, clone.WithList.Value.Count);

			Assert.AreEqual(obj.WithList.Value.Count, clone.WithList.Value.Count);
			Assert.AreEqual(obj.WithList.Value[0].Message, clone.WithList.Value[0].Message);
			Assert.IsNull(clone.WithList.Value[1]);
			Assert.AreEqual(obj.WithList.Value[2].Message, clone.WithList.Value[2].Message);
		}
		public void DeepClone_KeyValuePairWithListItemRef(TypeModel model)
		{
			var itemClass = new ItemClass() { Message = "Test test" };
			var list = new List<IItemClass>() { itemClass, new ItemClass() { Message = "Filler" }, itemClass };

			var obj = new KeyValuePairWrapper()
			{
				WithList = new KeyValuePair<int, List<IItemClass>>(12, list)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(obj.WithList.Key, clone.WithList.Key);

			Assert.AreEqual(3, clone.WithList.Value.Count);
			Assert.AreEqual(obj.WithList.Value[0].Message, clone.WithList.Value[0].Message);
			Assert.AreEqual(obj.WithList.Value[1].Message, clone.WithList.Value[1].Message);
			Assert.AreEqual(obj.WithList.Value[2].Message, clone.WithList.Value[2].Message);

			Assert.IsTrue(object.ReferenceEquals(obj.WithList.Value[0], obj.WithList.Value[2]), "Original reference failed");
			Assert.IsTrue(object.ReferenceEquals(clone.WithList.Value[0], clone.WithList.Value[2]), "Clone reference not maintained");
		}
		public void DeepClone_KeyValuePairWithListRef(TypeModel model)
		{
			var list = new List<IItemClass>() { new ItemClass() { Message = "Homer" } };

			var obj = new KeyValuePairWrapper()
			{
				ListRef = new KeyValuePair<List<IItemClass>, List<IItemClass>>(list, list)
			};

			var clone = (KeyValuePairWrapper)model.DeepClone(obj);

			Assert.AreEqual(1, clone.ListRef.Key.Count);
			Assert.AreEqual(1, clone.ListRef.Value.Count);

			Assert.AreEqual(obj.ListRef.Key[0].Message, clone.ListRef.Key[0].Message);
			Assert.AreEqual(obj.ListRef.Value[0].Message, clone.ListRef.Value[0].Message);

			Assert.IsTrue(object.ReferenceEquals(obj.ListRef.Key, obj.ListRef.Value), "Original reference failed");
			Assert.IsTrue(object.ReferenceEquals(clone.ListRef.Key, clone.ListRef.Value), "Clone reference not maintained");
		}