public void MapCodeGen_ForMappingDetails_Create_ReturnsClassSignature() { var mapping = new UserToUserViewMap(); var syntax = MapCodeGen.Create(mapping); syntax.NormalizeWhitespace().ToFullString().ShouldBe( "namespace HyperMap.Custom\r\n" + "{\r\n" + " public class UserToUserViewMapper : IMapper<HyperMap.Tests.Support.User, HyperMap.Tests.Support.UserView>\r\n" + " {\r\n" + " public UserToUserViewMapper(HyperMap.IMappingFactory mappingFactory)\r\n" + " {\r\n" + " _converter1 = new HyperMap.Converters.DefaultTypeConverter<System.Int32>();\r\n" + " _converter1.MappingFactory = mappingFactory;\r\n" + " _converter2 = new HyperMap.Converters.DefaultTypeConverter<System.String>();\r\n" + " _converter2.MappingFactory = mappingFactory;\r\n" + " }\r\n\r\n" + " private readonly HyperMap.Converters.DefaultTypeConverter<System.Int32> _converter1;\r\n" + " private readonly HyperMap.Converters.DefaultTypeConverter<System.String> _converter2;\r\n" + " public HyperMap.Tests.Support.UserView Map(HyperMap.Tests.Support.User source)\r\n" + " {\r\n" + " if (source == null)\r\n" + " return default(HyperMap.Tests.Support.UserView);\r\n" + " var target = new HyperMap.Tests.Support.UserView();\r\n" + " target.Id = _converter1.Convert(source.Id);\r\n" + " target.Name = _converter2.Convert(source.Name);\r\n" + " return target;\r\n" + " }\r\n" + " }\r\n" + "}"); }
public IMappingFactory BuildFactory(CompilerOptions options = null) { options = options ?? new CompilerOptions(); var compiler = new MappingCompiler(options); var trees = new List <SyntaxTree>(); foreach (var mapping in _mappings) { var namespaceSyntax = MapCodeGen.Create(mapping); var code = namespaceSyntax .NormalizeWhitespace() .ToFullString(); var tree = compiler.ParseText(code); trees.Add(tree); } var compilation = compiler.CreateCompiler(_mappings, trees.ToArray()); return(HandleCompilationResult(compilation)); }