forked from ServiceStack/ServiceStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMappingTests.cs
More file actions
150 lines (121 loc) · 3.43 KB
/
MappingTests.cs
File metadata and controls
150 lines (121 loc) · 3.43 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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
namespace ServiceStack.Common.Tests
{
public class User
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Car Car { get; set; }
}
public class Car
{
public string Name { get; set; }
public int Age { get; set; }
}
public class UserDto
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Car { get; set; }
}
public enum Color
{
Red,
Green,
Blue
}
public class IntNullableIDObj
{
public int? Id { get; set; }
}
public class IntIDObj
{
public int Id { get; set; }
}
public class NullableConversion
{
public decimal Amount { get; set; }
}
public class NullableConversionDto
{
public decimal? Amount { get; set; }
}
public class EnumConversion
{
public Color Color { get; set; }
}
public class EnumConversionStringDto
{
public string Color { get; set; }
}
public class EnumConversionIntDto
{
public int Color { get; set; }
}
[TestFixture]
public class MappingTests
{
[Test]
public void Does_populate()
{
var user = new User()
{
FirstName = "Demis",
LastName = "Bellot",
Car = new Car() { Name = "BMW X6", Age = 3 }
};
var userDto = new UserDto().PopulateWith(user);
Assert.That(userDto.FirstName, Is.EqualTo(user.FirstName));
Assert.That(userDto.LastName, Is.EqualTo(user.LastName));
Assert.That(userDto.Car, Is.EqualTo("{Name:BMW X6,Age:3}"));
}
[Test]
public void Does_translate()
{
var user = new User()
{
FirstName = "Demis",
LastName = "Bellot",
Car = new Car() { Name = "BMW X6", Age = 3 }
};
var userDto = user.TranslateTo<UserDto>();
Assert.That(userDto.FirstName, Is.EqualTo(user.FirstName));
Assert.That(userDto.LastName, Is.EqualTo(user.LastName));
Assert.That(userDto.Car, Is.EqualTo("{Name:BMW X6,Age:3}"));
}
[Test]
public void Does_enumstringconversion_translate()
{
var conversion = new EnumConversion { Color = Color.Blue };
var conversionDto = conversion.TranslateTo<EnumConversionStringDto>();
Assert.That(conversionDto.Color, Is.EqualTo("Blue"));
}
[Test]
public void Does_enumintconversion_translate()
{
var conversion = new EnumConversion { Color = Color.Green };
var conversionDto = conversion.TranslateTo<EnumConversionIntDto>();
Assert.That(conversionDto.Color, Is.EqualTo(1));
}
[Test]
public void Does_nullableconversion_translate()
{
var conversion = new NullableConversion { Amount = 123.45m };
var conversionDto = conversion.TranslateTo<NullableConversionDto>();
Assert.That(conversionDto.Amount, Is.EqualTo(123.45m));
}
[Test]
public void Does_translate_nullableInt_to_and_from()
{
var nullable = new IntNullableIDObj();
var nonNullable = nullable.TranslateTo<IntIDObj>();
nonNullable.Id = 10;
var expectedNullable = nonNullable.TranslateTo<IntNullableIDObj>();
Assert.That(expectedNullable.Id.Value, Is.EqualTo(nonNullable.Id));
}
}
}