Skip to content

Commit 72ece4b

Browse files
committed
Add MapperlyTest
1 parent 744e00e commit 72ece4b

File tree

6 files changed

+225
-0
lines changed

6 files changed

+225
-0
lines changed

src/.editorconfig

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1619,6 +1619,100 @@ dotnet_diagnostic.MsgPack016.severity = error
16191619
dotnet_diagnostic.MsgPack017.severity = error
16201620
dotnet_diagnostic.MsgPack018.severity = error
16211621

1622+
##########################################
1623+
# mapperly
1624+
# https://github.com/riok/mapperly/blob/main/src/Riok.Mapperly/Diagnostics/DiagnosticDescriptors.cs
1625+
##########################################
1626+
1627+
dotnet_diagnostic.RMG001.severity = error
1628+
dotnet_diagnostic.RMG002.severity = error
1629+
dotnet_diagnostic.RMG003.severity = error # warning
1630+
dotnet_diagnostic.RMG004.severity = error # warning
1631+
dotnet_diagnostic.RMG005.severity = error
1632+
dotnet_diagnostic.RMG006.severity = error
1633+
dotnet_diagnostic.RMG007.severity = error
1634+
dotnet_diagnostic.RMG008.severity = error
1635+
dotnet_diagnostic.RMG009.severity = error # info
1636+
dotnet_diagnostic.RMG010.severity = error # info
1637+
dotnet_diagnostic.RMG011.severity = error # info
1638+
dotnet_diagnostic.RMG012.severity = error # warning
1639+
dotnet_diagnostic.RMG013.severity = error
1640+
dotnet_diagnostic.RMG014.severity = error # warning
1641+
dotnet_diagnostic.RMG015.severity = error # info
1642+
dotnet_diagnostic.RMG016.severity = error
1643+
dotnet_diagnostic.RMG020.severity = error # warning
1644+
dotnet_diagnostic.RMG021.severity = error # warning
1645+
dotnet_diagnostic.RMG022.severity = error
1646+
dotnet_diagnostic.RMG023.severity = error
1647+
dotnet_diagnostic.RMG024.severity = error
1648+
dotnet_diagnostic.RMG025.severity = error
1649+
dotnet_diagnostic.RMG029.severity = error
1650+
dotnet_diagnostic.RMG030.severity = error
1651+
dotnet_diagnostic.RMG031.severity = error # warning
1652+
dotnet_diagnostic.RMG032.severity = error # warning
1653+
dotnet_diagnostic.RMG033.severity = error # info
1654+
dotnet_diagnostic.RMG034.severity = error
1655+
dotnet_diagnostic.RMG035.severity = error
1656+
dotnet_diagnostic.RMG036.severity = error
1657+
dotnet_diagnostic.RMG037.severity = error # warning
1658+
dotnet_diagnostic.RMG038.severity = error # warning
1659+
dotnet_diagnostic.RMG039.severity = error
1660+
dotnet_diagnostic.RMG040.severity = error
1661+
dotnet_diagnostic.RMG041.severity = error
1662+
dotnet_diagnostic.RMG042.severity = error
1663+
dotnet_diagnostic.RMG043.severity = error # warning
1664+
dotnet_diagnostic.RMG044.severity = error # warning
1665+
dotnet_diagnostic.RMG045.severity = error # warning
1666+
dotnet_diagnostic.RMG046.severity = error
1667+
dotnet_diagnostic.RMG047.severity = error
1668+
dotnet_diagnostic.RMG048.severity = error
1669+
dotnet_diagnostic.RMG049.severity = error # warning
1670+
dotnet_diagnostic.RMG050.severity = error # warning
1671+
dotnet_diagnostic.RMG051.severity = error # warning
1672+
dotnet_diagnostic.RMG052.severity = error # warning
1673+
dotnet_diagnostic.RMG053.severity = error
1674+
dotnet_diagnostic.RMG054.severity = error
1675+
dotnet_diagnostic.RMG055.severity = error
1676+
dotnet_diagnostic.RMG056.severity = error
1677+
dotnet_diagnostic.RMG057.severity = error
1678+
dotnet_diagnostic.RMG058.severity = error
1679+
dotnet_diagnostic.RMG059.severity = error
1680+
dotnet_diagnostic.RMG060.severity = error # warning
1681+
dotnet_diagnostic.RMG061.severity = error
1682+
dotnet_diagnostic.RMG062.severity = error
1683+
dotnet_diagnostic.RMG063.severity = error
1684+
dotnet_diagnostic.RMG064.severity = error
1685+
dotnet_diagnostic.RMG065.severity = error # warning
1686+
dotnet_diagnostic.RMG066.severity = error # warning
1687+
dotnet_diagnostic.RMG067.severity = error
1688+
dotnet_diagnostic.RMG068.severity = error # info
1689+
dotnet_diagnostic.RMG069.severity = error # warning
1690+
dotnet_diagnostic.RMG070.severity = error
1691+
dotnet_diagnostic.RMG071.severity = error # warning
1692+
dotnet_diagnostic.RMG072.severity = error # warning
1693+
dotnet_diagnostic.RMG073.severity = error # warning
1694+
dotnet_diagnostic.RMG074.severity = error
1695+
dotnet_diagnostic.RMG075.severity = error
1696+
dotnet_diagnostic.RMG076.severity = error # warning
1697+
dotnet_diagnostic.RMG077.severity = error
1698+
dotnet_diagnostic.RMG078.severity = error
1699+
dotnet_diagnostic.RMG079.severity = error
1700+
dotnet_diagnostic.RMG080.severity = error
1701+
dotnet_diagnostic.RMG081.severity = error
1702+
dotnet_diagnostic.RMG082.severity = error # warning
1703+
dotnet_diagnostic.RMG083.severity = error # info
1704+
dotnet_diagnostic.RMG084.severity = error
1705+
dotnet_diagnostic.RMG085.severity = error
1706+
dotnet_diagnostic.RMG086.severity = error
1707+
dotnet_diagnostic.RMG087.severity = error
1708+
dotnet_diagnostic.RMG088.severity = error # info
1709+
dotnet_diagnostic.RMG089.severity = error # info
1710+
dotnet_diagnostic.RMG090.severity = error # info
1711+
dotnet_diagnostic.RMG091.severity = error
1712+
dotnet_diagnostic.RMG092.severity = error
1713+
dotnet_diagnostic.RMG093.severity = error
1714+
dotnet_diagnostic.RMG094.severity = error
1715+
16221716
##########################################
16231717
# ReSharper properties
16241718
##########################################

src/Example.CSharp.sln

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MessagePackTest", "plugins\
279279
EndProject
280280
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloneTest", "plugins\CloneTest\CloneTest.csproj", "{E8A64A5D-8052-499B-9CC6-09C2768EDDAA}"
281281
EndProject
282+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapperlyTest", "plugins\MapperlyTest\MapperlyTest.csproj", "{6A740E32-3541-4FB0-9D54-85D2596C3242}"
283+
EndProject
282284
Global
283285
GlobalSection(SolutionConfigurationPlatforms) = preSolution
284286
Debug|Any CPU = Debug|Any CPU
@@ -681,6 +683,10 @@ Global
681683
{E8A64A5D-8052-499B-9CC6-09C2768EDDAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
682684
{E8A64A5D-8052-499B-9CC6-09C2768EDDAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
683685
{E8A64A5D-8052-499B-9CC6-09C2768EDDAA}.Release|Any CPU.Build.0 = Release|Any CPU
686+
{6A740E32-3541-4FB0-9D54-85D2596C3242}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
687+
{6A740E32-3541-4FB0-9D54-85D2596C3242}.Debug|Any CPU.Build.0 = Debug|Any CPU
688+
{6A740E32-3541-4FB0-9D54-85D2596C3242}.Release|Any CPU.ActiveCfg = Release|Any CPU
689+
{6A740E32-3541-4FB0-9D54-85D2596C3242}.Release|Any CPU.Build.0 = Release|Any CPU
684690
EndGlobalSection
685691
GlobalSection(SolutionProperties) = preSolution
686692
HideSolutionNode = FALSE
@@ -798,6 +804,7 @@ Global
798804
{7F0AA476-83A6-49C7-9064-6D13EF4811B9} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8}
799805
{16291F9D-48EC-496B-8610-E686CA57F747} = {630114C3-1AE7-468E-8ADD-1CDE3E9EEF26}
800806
{E8A64A5D-8052-499B-9CC6-09C2768EDDAA} = {630114C3-1AE7-468E-8ADD-1CDE3E9EEF26}
807+
{6A740E32-3541-4FB0-9D54-85D2596C3242} = {630114C3-1AE7-468E-8ADD-1CDE3E9EEF26}
801808
EndGlobalSection
802809
GlobalSection(ExtensibilityGlobals) = postSolution
803810
SolutionGuid = {CBE0CD6C-2E47-4D9F-B072-C138AA4A6D5A}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
using Riok.Mapperly.Abstractions;
2+
3+
[assembly: MapperDefaults(
4+
AllowNullPropertyAssignment = true,
5+
ThrowOnPropertyMappingNullMismatch = true,
6+
ThrowOnMappingNullMismatch = true,
7+
RequiredMappingStrategy = RequiredMappingStrategy.None,
8+
AutoUserMappings = false,
9+
IgnoreObsoleteMembersStrategy = IgnoreObsoleteMembersStrategy.None)]
10+
11+
namespace MapperlyTest;
12+
13+
public class Car
14+
{
15+
16+
#region Properties
17+
18+
public string Name { get; set; } = string.Empty;
19+
20+
public string? NullStr { get; set; }
21+
22+
public int NumberOfWheels { get; set; }
23+
24+
#endregion
25+
26+
}
27+
28+
internal record CarDto(string Name, int NumberOfWheels)
29+
{
30+
31+
#region Properties
32+
33+
internal int? IntNull { get; init; }
34+
35+
internal string MergeStr => $"{Name} {NumberOfWheels}";
36+
37+
internal string? StringNull { get; init; }
38+
39+
#endregion
40+
41+
}
42+
43+
[Mapper]
44+
internal partial class CarMapper
45+
{
46+
47+
#region Methods
48+
49+
[MapperIgnoreSource(nameof(Car.NullStr))]
50+
[MapperIgnoreTarget(nameof(CarDto.IntNull))]
51+
internal partial CarDto CarToCarDto(Car car);
52+
53+
#endregion
54+
55+
}
56+
57+
[Mapper]
58+
internal partial class CarNullThrowMapper
59+
{
60+
61+
#region Methods
62+
63+
[MapProperty(nameof(Car.NullStr), nameof(CarDto.StringNull))]
64+
internal partial CarDto CarToCarDto(Car car);
65+
66+
#endregion
67+
68+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
namespace MapperlyTest;
2+
3+
public static class MapperTest
4+
{
5+
6+
#region Constants & Statics
7+
8+
public static void Test()
9+
{
10+
var mapper = new CarMapper();
11+
var car = new Car { Name = "Fiat", NumberOfWheels = 4 };
12+
var dto = mapper.CarToCarDto(car);
13+
Console.WriteLine($"Car: {dto.Name}, Wheels: {dto.NumberOfWheels}");
14+
}
15+
16+
#endregion
17+
18+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net9.0</TargetFramework>
6+
<ImplicitUsings>enable</ImplicitUsings>
7+
<Nullable>enable</Nullable>
8+
</PropertyGroup>
9+
10+
<PropertyGroup>
11+
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
12+
<CompilerGeneratedFilesOutputPath>_Generated</CompilerGeneratedFilesOutputPath>
13+
</PropertyGroup>
14+
<ItemGroup>
15+
<Compile Remove="_Generated\**\*.g.cs" />
16+
<None Include="_Generated\**\*.g.cs" />
17+
</ItemGroup>
18+
19+
<ItemGroup>
20+
<PackageReference Include="Riok.Mapperly" Version="4.3.0" />
21+
</ItemGroup>
22+
23+
</Project>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace MapperlyTest;
2+
3+
internal class Program
4+
{
5+
6+
#region Constants & Statics
7+
8+
private static void Main(string[] args)
9+
{
10+
MapperTest.Test();
11+
}
12+
13+
#endregion
14+
15+
}

0 commit comments

Comments
 (0)