| 0 | 1 using System; | 
|  | 2 | 
|  | 3 using NUnit.Framework; | 
|  | 4 | 
|  | 5 using BLToolkit.Mapping; | 
|  | 6 | 
|  | 7 namespace Mapping | 
|  | 8 { | 
|  | 9 	[TestFixture] | 
|  | 10 	public class DefaultValueAttributeTest | 
|  | 11 	{ | 
|  | 12 		[MapValue(Enum1.Value1, "1")] | 
|  | 13 		[MapValue(Enum1.Value3, "3")] | 
|  | 14 		[DefaultValue(Enum1.Value3)] | 
|  | 15 		public enum Enum1 | 
|  | 16 		{ | 
|  | 17 			Value1, | 
|  | 18 			[MapValue("2")] Value2, | 
|  | 19 			Value3 | 
|  | 20 		} | 
|  | 21 | 
|  | 22 		public class Object1 | 
|  | 23 		{ | 
|  | 24 			public Enum1 Enum1; | 
|  | 25 			[DefaultValue(Enum1.Value1)] | 
|  | 26 			public Enum1 Enum2; | 
|  | 27 		} | 
|  | 28 | 
|  | 29 		[Test] | 
|  | 30 		public void TestEnum1() | 
|  | 31 		{ | 
|  | 32 			ObjectMapper om = Map.GetObjectMapper(typeof(Object1)); | 
|  | 33 | 
|  | 34 			Object1 o = (Object1)om.CreateInstance(); | 
|  | 35 | 
|  | 36 			om.SetValue(o, "Enum1", "55"); | 
|  | 37 			om.SetValue(o, "Enum2", "66"); | 
|  | 38 | 
|  | 39 			Assert.AreEqual(Enum1.Value3, o.Enum1); | 
|  | 40 			Assert.AreEqual(Enum1.Value1, o.Enum2); | 
|  | 41 | 
|  | 42 			Assert.AreEqual("3",  om.GetValue(o, "Enum1")); | 
|  | 43 			Assert.AreEqual("1",  om.GetValue(o, "Enum2")); | 
|  | 44 		} | 
|  | 45 | 
|  | 46 		[MapValue(Enum2.Value1, "1")] | 
|  | 47 		[MapValue(Enum2.Value3, "3")] | 
|  | 48 		public enum Enum2 | 
|  | 49 		{ | 
|  | 50 			Value1, | 
|  | 51 			[MapValue("2")] Value2, | 
|  | 52 			[DefaultValue]  Value3 | 
|  | 53 		} | 
|  | 54 | 
|  | 55 		public class Object2 | 
|  | 56 		{ | 
|  | 57 			public Enum2 Enum1; | 
|  | 58 		} | 
|  | 59 | 
|  | 60 		[Test] | 
|  | 61 		public void TestEnum2() | 
|  | 62 		{ | 
|  | 63 			ObjectMapper om = Map.GetObjectMapper(typeof(Object2)); | 
|  | 64 | 
|  | 65 			Object2 o = (Object2)om.CreateInstance(); | 
|  | 66 | 
|  | 67 			om.SetValue(o, "Enum1", "55"); | 
|  | 68 | 
|  | 69 			Assert.AreEqual(Enum2.Value3, o.Enum1); | 
|  | 70 | 
|  | 71 			Assert.AreEqual("3",  om.GetValue(o, "Enum1")); | 
|  | 72 		} | 
|  | 73 | 
|  | 74 		[DefaultValue(typeof(Enum2), Enum2.Value2)] | 
|  | 75 		public class Object3 | 
|  | 76 		{ | 
|  | 77 			public Enum2 Enum1; | 
|  | 78 		} | 
|  | 79 | 
|  | 80 		[Test] | 
|  | 81 		public void TestEnum3() | 
|  | 82 		{ | 
|  | 83 			ObjectMapper om = Map.GetObjectMapper(typeof(Object3)); | 
|  | 84 | 
|  | 85 			Object3 o = (Object3)om.CreateInstance(); | 
|  | 86 | 
|  | 87 			om.SetValue(o, "Enum1", "55"); | 
|  | 88 | 
|  | 89 			Assert.AreEqual(Enum2.Value2, o.Enum1); | 
|  | 90 | 
|  | 91 			Assert.AreEqual("2",  om.GetValue(o, "Enum1")); | 
|  | 92 		} | 
|  | 93 | 
|  | 94 		[DefaultValue(Enum2.Value2)] | 
|  | 95 		public class Object4 | 
|  | 96 		{ | 
|  | 97 			public Enum2 Enum1; | 
|  | 98 		} | 
|  | 99 | 
|  | 100 		[Test] | 
|  | 101 		public void TestEnum4() | 
|  | 102 		{ | 
|  | 103 			ObjectMapper om = Map.GetObjectMapper(typeof(Object4)); | 
|  | 104 | 
|  | 105 			Object4 o = (Object4)om.CreateInstance(); | 
|  | 106 | 
|  | 107 			om.SetValue(o, "Enum1", "55"); | 
|  | 108 | 
|  | 109 			Assert.AreEqual(Enum2.Value2, o.Enum1); | 
|  | 110 | 
|  | 111 			Assert.AreEqual("2",  om.GetValue(o, "Enum1")); | 
|  | 112 		} | 
|  | 113 	} | 
|  | 114 } |