annotate UnitTests/CS/Reflection/Extension/DefaultValueTest.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.IO;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Reflection.Extension;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace Reflection.Extension
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class DefaultValueTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 [SetUp]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 public void SetUp()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 Map.DefaultSchema = new DefaultMappingSchema();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 using (StreamWriter sw = File.CreateText("Mapping.xml"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 sw.WriteLine(@"<?xml version='1.0' encoding='utf-8' ?>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 <Types xmlns='urn:schemas-bltoolkit-net:typeext'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 <Type Name='Enum3'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 <Member Name='Value1' MapValue='1' MapValue-Type='System.String' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 <Member Name='Value2' MapValue='3' MapValue-Type='System.String' DefaultValue=''/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 </Type>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 <Type Name='Enum4'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 <Member Name='Value1' MapValue='1' MapValue-Type='System.String' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 <Member Name='Value2' MapValue='3' MapValue-Type='System.String' DefaultValue=''/>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 </Type>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 <Type Name='Dest'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 <Member Name='Field2'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 <MapValue Value='1' OrigValue='Value1' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 <MapValue Value='2' OrigValue='Value2' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 <DefaultValue Value='Value1' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 </Member>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 <Member Name='Field3' DefaultValue='Value1'>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 <MapValue Value='1' OrigValue='Value1' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 <MapValue Value='2' OrigValue='Value2' />
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 </Member>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 </Type>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 </Types>");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 [TearDown]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 public void TearDown()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 File.Delete("Mapping.xml");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public enum Enum1
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 [MapValue("1")] Value1 = 11,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 [MapValue("2"), DefaultValue] Value2 = 12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 [MapValue(Enum2.Value1, "1")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 [MapValue(Enum2.Value2, "2")]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 [DefaultValue(Enum2.Value2)]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 public enum Enum2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 Value1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 Value2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 public enum Enum3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 Value1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 Value2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 public enum Enum4
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 [MapValue("1")] Value1,
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 [MapValue("2"), DefaultValue] Value2
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 public class Source
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81 public string Field1 = "11";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 public string Field2 = "22";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 public string Field3 = "33";
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 public class Dest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 public Enum1 Field1;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 public Enum1 Field2;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 public Enum2 Field3;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94 public void Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 Map.Extensions = TypeExtension.GetExtensions("Mapping.xml");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 Enum1 e1 = (Enum1)Map.ValueToEnum("3", typeof(Enum1));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 Assert.AreEqual(Enum1.Value2, e1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 Enum2 e2 = (Enum2)Map.ValueToEnum("3", typeof(Enum2));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 Assert.AreEqual(Enum2.Value2, e2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 Enum3 e3 = (Enum3)Map.ValueToEnum("4", typeof(Enum3));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 Assert.AreEqual(Enum3.Value2, e3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 Enum4 e4 = (Enum4)Map.ValueToEnum("4", typeof(Enum4));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 Assert.AreEqual(Enum4.Value2, e4);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 Dest o = (Dest)Map.ObjectToObject(new Source(), typeof(Dest));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112 Assert.AreEqual(Enum1.Value2, o.Field1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 Assert.AreEqual(Enum1.Value1, o.Field2);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 Assert.AreEqual(Enum2.Value1, o.Field3);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 }