Skip to content

Commit 2010a13

Browse files
committed
add test class for create value type instance
1 parent 1d734ec commit 2010a13

File tree

1 file changed

+166
-0
lines changed

1 file changed

+166
-0
lines changed
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Reflection;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
8+
namespace SourceGeneration.Reflection.Test;
9+
10+
[TestClass]
11+
public class CreateInstanceValueTypeTest
12+
{
13+
[TestMethod]
14+
public void Create_With_ParamaterlessCtor()
15+
{
16+
var type = SourceReflector.GetRequiredType<CreateInstanceTestStruct_ParamaterlessCtor>();
17+
var instance = SourceReflector.CreateInstance(type);
18+
19+
Assert.IsNotNull(instance);
20+
Assert.IsInstanceOfType(instance, typeof(CreateInstanceTestStruct_ParamaterlessCtor));
21+
Assert.AreEqual("Default", ((CreateInstanceTestStruct_ParamaterlessCtor)instance).Value);
22+
}
23+
24+
[TestMethod]
25+
public void Create_With_DefaultCtor()
26+
{
27+
var type = SourceReflector.GetRequiredType<CreateInstanceTestStruct_DefaultCtor>();
28+
var instance = SourceReflector.CreateInstance(type);
29+
30+
Assert.IsNotNull(instance);
31+
Assert.IsInstanceOfType(instance, typeof(CreateInstanceTestStruct_DefaultCtor));
32+
Assert.IsNull(((CreateInstanceTestStruct_DefaultCtor)instance).Value);
33+
}
34+
35+
[TestMethod]
36+
public void Create_With_ParameterCtor_DefaultInvoke()
37+
{
38+
var type = SourceReflector.GetRequiredType<CreateInstanceTestStruct_ParamatersCtor>();
39+
var instance = SourceReflector.CreateInstance(type);
40+
41+
Assert.IsNotNull(instance);
42+
Assert.IsInstanceOfType(instance, typeof(CreateInstanceTestStruct_ParamatersCtor));
43+
Assert.AreEqual("Default", ((CreateInstanceTestStruct_ParamatersCtor)instance).Value);
44+
}
45+
46+
[TestMethod]
47+
public void Create_With_ParameterCtor_ArgumentInvoke()
48+
{
49+
var type = SourceReflector.GetRequiredType<CreateInstanceTestStruct_ParamatersCtor>();
50+
var instance = SourceReflector.CreateInstance(type, "Test");
51+
52+
Assert.IsNotNull(instance);
53+
Assert.IsInstanceOfType(instance, typeof(CreateInstanceTestStruct_ParamatersCtor));
54+
Assert.AreEqual("Test", ((CreateInstanceTestStruct_ParamatersCtor)instance).Value);
55+
}
56+
57+
58+
[TestMethod]
59+
public void ReflectionCreate_With_DefaultCtor()
60+
{
61+
var type = SourceReflector.GetRequiredType<ReflectionCreateInstanceTestStruct_DefaultCtor>(true);
62+
var instance = SourceReflector.CreateInstance(type);
63+
64+
Assert.IsNotNull(instance);
65+
Assert.IsInstanceOfType(instance, typeof(ReflectionCreateInstanceTestStruct_DefaultCtor));
66+
Assert.IsNull(((ReflectionCreateInstanceTestStruct_DefaultCtor)instance).Value);
67+
}
68+
69+
[TestMethod]
70+
public void ReflectionCreate_With_ParamaterlessCtor()
71+
{
72+
var type = SourceReflector.GetRequiredType<ReflectionCreateInstanceTestStruct_ParamaterlessCtor>(true);
73+
var instance = SourceReflector.CreateInstance(type);
74+
75+
Assert.IsNotNull(instance);
76+
Assert.IsInstanceOfType(instance, typeof(ReflectionCreateInstanceTestStruct_ParamaterlessCtor));
77+
Assert.AreEqual("Default", ((ReflectionCreateInstanceTestStruct_ParamaterlessCtor)instance).Value);
78+
}
79+
80+
[TestMethod]
81+
public void ReflectionCreate_With_ParameterCtor_ArgumentInvoke()
82+
{
83+
var type = SourceReflector.GetRequiredType<ReflectionCreateInstanceTestStruct_ParamatersCtor>(true);
84+
var instance = SourceReflector.CreateInstance(type, "Test");
85+
86+
Assert.IsNotNull(instance);
87+
Assert.IsInstanceOfType(instance, typeof(ReflectionCreateInstanceTestStruct_ParamatersCtor));
88+
Assert.AreEqual("Test", ((ReflectionCreateInstanceTestStruct_ParamatersCtor)instance).Value);
89+
}
90+
91+
92+
[TestMethod]
93+
public void ReflectionCreate_With_ParameterCtor_DefaultInvoke()
94+
{
95+
var type = SourceReflector.GetRequiredType<ReflectionCreateInstanceTestStruct_ParamatersCtor>(true);
96+
var instance = SourceReflector.CreateInstance(type);
97+
98+
Assert.IsNotNull(instance);
99+
Assert.IsInstanceOfType(instance, typeof(ReflectionCreateInstanceTestStruct_ParamatersCtor));
100+
Assert.AreEqual("Default", ((ReflectionCreateInstanceTestStruct_ParamatersCtor)instance).Value);
101+
}
102+
103+
}
104+
105+
[SourceReflection]
106+
public struct CreateInstanceTestStruct_ParamatersCtor
107+
{
108+
public CreateInstanceTestStruct_ParamatersCtor()
109+
{
110+
Value = "Default";
111+
}
112+
113+
public CreateInstanceTestStruct_ParamatersCtor(string value)
114+
{
115+
Value = value;
116+
}
117+
118+
public string Value { get; set; }
119+
}
120+
121+
[SourceReflection]
122+
public struct CreateInstanceTestStruct_ParamaterlessCtor
123+
{
124+
public CreateInstanceTestStruct_ParamaterlessCtor()
125+
{
126+
Value = "Default";
127+
}
128+
129+
public string Value { get; set; }
130+
}
131+
132+
[SourceReflection]
133+
public struct CreateInstanceTestStruct_DefaultCtor
134+
{
135+
public string Value { get; set; }
136+
}
137+
138+
public struct ReflectionCreateInstanceTestStruct_DefaultCtor
139+
{
140+
public string Value { get; set; }
141+
}
142+
143+
public struct ReflectionCreateInstanceTestStruct_ParamaterlessCtor
144+
{
145+
public ReflectionCreateInstanceTestStruct_ParamaterlessCtor()
146+
{
147+
Value = "Default";
148+
}
149+
150+
public string Value { get; set; }
151+
}
152+
153+
public struct ReflectionCreateInstanceTestStruct_ParamatersCtor
154+
{
155+
public ReflectionCreateInstanceTestStruct_ParamatersCtor()
156+
{
157+
Value = "Default";
158+
}
159+
160+
public ReflectionCreateInstanceTestStruct_ParamatersCtor(string value)
161+
{
162+
Value = value;
163+
}
164+
165+
public string Value { get; set; }
166+
}

0 commit comments

Comments
 (0)