-
Notifications
You must be signed in to change notification settings - Fork 405
Expand file tree
/
Copy pathWhenMappingObjectRegression.cs
More file actions
156 lines (119 loc) · 3.93 KB
/
WhenMappingObjectRegression.cs
File metadata and controls
156 lines (119 loc) · 3.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Shouldly;
using System;
namespace Mapster.Tests
{
[TestClass]
public class WhenMappingObjectRegression
{
/// <summary>
/// https://github.com/MapsterMapper/Mapster/issues/524
/// </summary>
[TestMethod]
public void TSourceIsObjectUpdate()
{
var source = new Source524 { X1 = 123 };
var _result = Somemap(source);
_result.X1.ShouldBe(123);
}
/// <summary>
/// https://github.com/MapsterMapper/Mapster/issues/524
/// </summary>
[TestMethod]
public void TSourceIsObjectUpdateUseDynamicCast()
{
var source = new Source524 { X1 = 123 };
var _result = SomemapWithDynamic(source);
_result.X1.ShouldBe(123);
}
[TestMethod]
public void UpdateManyDest()
{
var source = new Source524 { X1 = 123 };
var _result = SomemapManyDest(source);
_result.X1.ShouldBe(123);
_result.X2.ShouldBe(127);
}
[TestMethod]
public void UpdateToRealObject()
{
var source = new Source524 { X1 = 123 };
var RealObject = new Object();
var _result = source.AdaptToTarget(RealObject);
_result.ShouldBeOfType<Source524>();
((Source524)_result).X1.ShouldBe(source.X1);
}
[TestMethod]
public void RealObjectCastToDestination() /// Warning potential Infinity Loop in ObjectAdapter!!!
{
var source = new Source524 { X1 = 123 };
var RealObject = new Object();
var _result = RealObject.AdaptToTarget(source);
_result.ShouldBeOfType<Source524>();
((Source524)_result).X1.ShouldBe(source.X1);
}
[TestMethod]
public void UpdateObjectInsaider()
{
var _source = new InsaderObject() { X1 = 1 };
var _Destination = new InsaderObject() { X1 = 2 };
var _result = _source.AdaptToTarget(_Destination);
_result.X1.ShouldBe(_source.X1);
}
[TestMethod]
public void UpdateObjectInsaiderToObject()
{
var _source = new InsaderObject() { X1 = 1 };
var _Destination = new InsaderObject() { X1 = new Object() };
var _result = _source.AdaptToTarget(_Destination);
_result.X1.ShouldBe(_source.X1);
}
[TestMethod]
public void UpdateObjectInsaiderWhenObjectinTSource()
{
var _source = new InsaderObject() { X1 = new Object() };
var _Destination = new InsaderObject() { X1 = 3 };
var _result = _source.AdaptToTarget(_Destination);
_result.X1.ShouldBe(_source.X1);
}
#region TestFunctions
Dest524 Somemap(object source)
{
var dest = new Dest524 { X1 = 321 };
var dest1 = source.AdaptToTarget(dest);
return dest;
}
ManyDest524 SomemapManyDest(object source)
{
var dest = new ManyDest524 { X1 = 321, X2 = 127 };
var dest1 = source.AdaptToTarget(dest);
return dest;
}
Dest524 SomemapWithDynamic(object source)
{
var dest = new Dest524 { X1 = 321 };
var dest1 = source.Adapt(dest, source.GetType(), dest.GetType());
return dest;
}
#endregion TestFunctions
#region TestClasses
class Source524
{
public int X1 { get; set; }
}
class Dest524
{
public int X1 { get; set; }
}
class ManyDest524
{
public int X1 { get; set;}
public int X2 { get; set;}
}
class InsaderObject
{
public Object X1 { get; set;}
}
#endregion TestClasses
}
}