annotate UnitTests/CS/TypeBuilder/GenericMethodTest.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
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.Collections.Generic;
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.Aspects;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace TypeBuilder
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 public class GenericMethodTest
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public abstract class TestObject
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 public virtual T GetValue<T>([NotNull] T value) where T : class, ICloneable
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 return value;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 public abstract T Abstract<T>(T value) where T : struct, IFormattable;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 public abstract T Abstract2<T>(T value) where T : new();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 public abstract T Abstract3<T>(T value);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 [Test, ExpectedException(typeof(ArgumentNullException))]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 public void Test()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 // If you got an 'Invalid executable format' exception here
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 // you need to install .Net Framework 2.0 SP1 or later.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 TestObject t = TypeAccessor<TestObject>.CreateInstance();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 Assert.AreEqual("123", t.GetValue("123"));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 Assert.AreEqual(0, t.Abstract(123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 Assert.AreEqual(0, t.Abstract2(123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 Assert.AreEqual(0, t.Abstract3(123));
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 // Throws ArgumentNullException
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 t.GetValue<string>(null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 public abstract class TestClass<T>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 public abstract L SelectAll<L>() where L : IList<T>, new();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 // Works only with Mono.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 // See https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=282829
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 //[Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 public void GenericMixTest()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 TestClass<int> t = TypeAccessor.CreateInstance<TestClass<int>>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 Assert.That(t, Is.Not.Null);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 }