Mercurial > pub > bltoolkit
comparison UnitTests/CS/TypeBuilder/InternalTypesTest.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 using System; | |
2 using System.Runtime.CompilerServices; | |
3 | |
4 using NUnit.Framework; | |
5 | |
6 using BLToolkit.Reflection; | |
7 using BLToolkit.TypeBuilder; | |
8 | |
9 [assembly: InternalsVisibleTo("InternalTypesTest, PublicKey=00240000048000009400000006020000002400005253413100040000010001001d9a12fa5826334c27adac46b64048c08dc48a37113586f0b315baefeecad081ce1d907ef8879ea1dcea6decb9f0d87840ff60fc5bd2a3919469284481b6ae7b73ebb327503cd16c9ecd95b6ed9decc80116dfbe680dc1ad83c5aa89af3e48f5f9f94444901168e58a782f0831d88f6e00f47cd9eb209c40064fb5b002ef79be")] | |
10 | |
11 namespace TypeBuilder | |
12 { | |
13 [TestFixture] | |
14 public class InternalTypesTest | |
15 { | |
16 internal abstract class InternalObject | |
17 { | |
18 public abstract string PublicValue { get; set; } | |
19 } | |
20 | |
21 public abstract class PublicObject | |
22 { | |
23 internal string InternalField; | |
24 internal abstract string InternalValue { get; set; } | |
25 internal protected abstract string ProtectedInternalValue { get; set; } | |
26 public abstract string PublicValue { get; internal set; } | |
27 public string NonAbstractValue | |
28 { | |
29 get { return InternalField; } | |
30 internal set { InternalField = value; } | |
31 } | |
32 } | |
33 | |
34 [Test] | |
35 public void Test() | |
36 { | |
37 TypeFactory.SetGlobalAssembly("InternalTypesTest.dll", new Version(1,2,3,4), "TypeBuilder/InternalTypesTest.snk"); | |
38 | |
39 var o = TypeAccessor.CreateInstance<InternalObject>(); | |
40 Assert.IsNotNull(o); | |
41 | |
42 var o2 = TypeAccessor.CreateInstance<PublicObject>(); | |
43 Assert.IsNotNull(o2); | |
44 | |
45 TypeFactory.SaveGlobalAssembly(); | |
46 | |
47 var ta = TypeAccessor<PublicObject>.Instance; | |
48 | |
49 Assert.IsNotNull(ta["InternalField"]); | |
50 Assert.IsTrue (ta["InternalField"].HasGetter); | |
51 Assert.IsTrue (ta["InternalField"].HasSetter); | |
52 Assert.IsNotNull(ta["PublicValue"]); | |
53 Assert.IsTrue (ta["PublicValue"].HasGetter); | |
54 Assert.IsTrue (ta["PublicValue"].HasSetter); | |
55 Assert.IsNotNull(ta["InternalValue"]); | |
56 Assert.IsTrue (ta["InternalValue"].HasGetter); | |
57 Assert.IsTrue (ta["InternalValue"].HasSetter); | |
58 Assert.IsNotNull(ta["ProtectedInternalValue"]); | |
59 Assert.IsTrue (ta["ProtectedInternalValue"].HasGetter); | |
60 Assert.IsTrue (ta["ProtectedInternalValue"].HasSetter); | |
61 Assert.IsNotNull(ta["NonAbstractValue"]); | |
62 Assert.IsTrue (ta["NonAbstractValue"].HasGetter); | |
63 Assert.IsTrue (ta["NonAbstractValue"].HasSetter); | |
64 } | |
65 } | |
66 } |