public static void GenerateWhenSourceGetterIsNotPublic() { var(diagnostics, output) = MapToGeneratorTests.GetGeneratedOutput( @"using InlineMapping; public class Destination { public string Id { get; set; } } [MapTo(typeof(Destination))] public class Source { public string Id { private get; set; } }"); Assert.Multiple(() => { Assert.That(diagnostics.Length, Is.EqualTo(2)); Assert.That(() => diagnostics.Single(_ => _.Id == NoPropertyMapsFoundDescriptorConstants.Id), Throws.Nothing); var noMatchMessage = diagnostics.Single(_ => _.Id == NoMatchDescriptorConstants.Id).GetMessage(); Assert.That(noMatchMessage, Contains.Substring("Id")); Assert.That(noMatchMessage, Contains.Substring("destination type Destination")); Assert.That(output, Is.EqualTo(string.Empty)); }); }
public static void GenerateWhenDestinationIsNotInSourceNamespace() { var(diagnostics, output) = MapToGeneratorTests.GetGeneratedOutput( @"using InlineMapping; namespace DestinationNamespace { public class Destination { public string Id { get; set; } } } namespace SourceNamespace { [MapTo(typeof(DestinationNamespace.Destination)] public class Source { public string Id { get; set; } } }"); Assert.Multiple(() => { Assert.That(diagnostics.Length, Is.EqualTo(0)); Assert.That(output, Does.Contain("using DestinationNamespace;")); Assert.That(output, Does.Contain("namespace SourceNamespace")); Assert.That(output, Does.Contain("Id = self.Id,")); }); }
public static void GenerateWithClasses() { var(diagnostics, output) = MapToGeneratorTests.GetGeneratedOutput( @"using InlineMapping; public class Destination { public string Id { get; set; } } [MapTo(typeof(Destination))] public class Source { public string Id { get; set; } }"); Assert.Multiple(() => { Assert.That(diagnostics.Length, Is.EqualTo(0)); Assert.That(output, Does.Not.Contain("namespace")); Assert.That(output, Does.Contain("using System;")); Assert.That(output, Does.Contain("public static Destination MapToDestination(this Source self) =>")); Assert.That(output, Does.Contain("self is null ? throw new ArgumentNullException(nameof(self)) :")); Assert.That(output, Does.Contain("Id = self.Id,")); }); }
public static void GenerateWhenNoPropertiesExist() { var(diagnostics, output) = MapToGeneratorTests.GetGeneratedOutput( @"using InlineMapping; public class Destination { } [MapTo(typeof(Destination))] public class Source { }"); Assert.Multiple(() => { Assert.That(diagnostics.Length, Is.EqualTo(1)); Assert.That(diagnostics[0].Id, Is.EqualTo(NoPropertyMapsFoundDescriptorConstants.Id)); Assert.That(output, Is.EqualTo(string.Empty)); }); }