Skip to content

Commit 0e8fd27

Browse files
committed
Test coverage for cloning custom string formatting settings
1 parent f53f003 commit 0e8fd27

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed

AgileMapper.UnitTests/AgileMapper.UnitTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@
117117
<Compile Include="Dictionaries\Configuration\WhenConfiguringTargetDictionaryMapping.cs" />
118118
<Compile Include="Dictionaries\WhenCreatingRootDictionaryMembers.cs" />
119119
<Compile Include="MapperCloning\WhenCloningObjectFactories.cs" />
120+
<Compile Include="MapperCloning\WhenCloningStringFormatting.cs" />
120121
<Compile Include="MappingExtensions.cs" />
121122
<Compile Include="SimpleTypeConversion\WhenConvertingToCharacters.cs" />
122123
<Compile Include="Structs\Configuration\WhenConfiguringStructCreationCallbacks.cs" />
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
namespace AgileObjects.AgileMapper.UnitTests.MapperCloning
2+
{
3+
using TestClasses;
4+
using Xunit;
5+
6+
public class WhenCloningStringFormatting
7+
{
8+
[Fact]
9+
public void ShouldCloneCustomDoubleFormatting()
10+
{
11+
using (var originalMapper = Mapper.CreateNew())
12+
{
13+
originalMapper.WhenMapping
14+
.StringsFrom<double>(c => c.FormatUsing("0.000"));
15+
16+
using (var clonedMapper = originalMapper.CloneSelf())
17+
{
18+
var originalResult = originalMapper
19+
.Map(new PublicProperty<double> { Value = 1 })
20+
.ToANew<PublicField<string>>();
21+
22+
originalResult.Value.ShouldBe("1.000");
23+
24+
var clonedResult = clonedMapper
25+
.Map(new PublicProperty<double> { Value = 2 })
26+
.ToANew<PublicField<string>>();
27+
28+
clonedResult.Value.ShouldBe("2.000");
29+
}
30+
}
31+
}
32+
33+
[Fact]
34+
public void ShouldOverrideCustomDecimalFormatting()
35+
{
36+
using (var originalMapper = Mapper.CreateNew())
37+
{
38+
originalMapper.WhenMapping
39+
.StringsFrom<decimal>(c => c.FormatUsing("0.00"));
40+
41+
using (var clonedMapper = originalMapper.CloneSelf())
42+
{
43+
clonedMapper.WhenMapping
44+
.StringsFrom<decimal>(c => c.FormatUsing("0.000"));
45+
46+
var originalResult = originalMapper
47+
.Map(new PublicProperty<decimal> { Value = 1 })
48+
.ToANew<PublicField<string>>();
49+
50+
originalResult.Value.ShouldBe("1.00");
51+
52+
var clonedResult = clonedMapper
53+
.Map(new PublicProperty<decimal> { Value = 1 })
54+
.ToANew<PublicField<string>>();
55+
56+
clonedResult.Value.ShouldBe("1.000");
57+
}
58+
}
59+
}
60+
}
61+
}

0 commit comments

Comments
 (0)