Guest User

Untitled

a guest
Oct 19th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.36 KB | None | 0 0
  1. using AutoMapper;
  2. using AutoMapper.QueryableExtensions;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6.  
  7. namespace Common.DALTests
  8. {
  9. public static class FieldMapper
  10. {
  11. public static IMapper GetMapper()
  12. {
  13. IMapper mapper = new Mapper(new MapperConfiguration(cfg =>
  14. {
  15. cfg.CreateMap<string, bool>().ConvertUsing<GeniusStringBooleanToBooleanConverter>();
  16. cfg.CreateMap<bool, string>().ConvertUsing<BooleanToGeniusStringBooleanConverter>();
  17. cfg.AddProfile<UserProfileMappingProfile>();
  18. }));
  19.  
  20. return mapper;
  21. }
  22. }
  23.  
  24. public class BooleanToGeniusStringBooleanConverter : ITypeConverter<bool, string>
  25. {
  26. public string Convert(bool source, string destination, ResolutionContext context)
  27. {
  28. return source ? "O" : "N";
  29. }
  30. }
  31.  
  32. public class GeniusStringBooleanToBooleanConverter : ITypeConverter<string, bool>
  33. {
  34. public bool Convert(string source, bool destination, ResolutionContext context)
  35. {
  36. return source.ToUpper() == "O";
  37. }
  38. }
  39.  
  40. [TestClass()]
  41. public class Test
  42. {
  43. public List<x_ScanUsers> GetData()
  44. {
  45. return new List<x_ScanUsers>()
  46. {
  47. new x_ScanUsers
  48. {
  49. Account_Disabled = "O"
  50. ,Active="N"
  51. ,Cannot_Change_Password="O"
  52. ,Change_Password="N"
  53. ,Code_ID=1
  54. ,Password_Never_Expire="O"
  55. ,UserName="bob"
  56. },
  57. new x_ScanUsers
  58. {
  59. Account_Disabled = "N"
  60. ,Active="O"
  61. ,Cannot_Change_Password="O"
  62. ,Change_Password="N"
  63. ,Code_ID=1
  64. ,Password_Never_Expire="O"
  65. ,UserName="john"
  66. }
  67. };
  68. }
  69.  
  70. [TestMethod()]
  71. public void MapperIsValid()
  72. {
  73. FieldMapper.GetMapper().ConfigurationProvider.AssertConfigurationIsValid();
  74. }
  75.  
  76. [TestMethod()]
  77. public void TypesDoNotMatchWithProjectTo()
  78. {
  79. var test = GetData().AsQueryable().ProjectTo<UserProfile>(FieldMapper.GetMapper().ConfigurationProvider).Where(x => x.Username == "bob").First().Active;
  80. }
  81.  
  82. [TestMethod()]
  83. public void TypesDoNotMatchWithUseAsDataSource()
  84. {
  85. var test = GetData().AsQueryable().UseAsDataSource(FieldMapper.GetMapper()).For<UserProfile>().Where(x => x.Username == "bob").First().Active;
  86. }
  87. }
  88.  
  89. public class UserProfile
  90. {
  91. public bool AccountDisabled { get; set; }
  92. public bool Active { get; set; }
  93. public bool CannotChangePassword { get; set; }
  94. public int Id { get; set; }
  95. public string MustChangePasswordAtNextLogon { get; set; }
  96. public bool PasswordNeverExpires { get; set; }
  97. public string Username { get; set; }
  98. }
  99.  
  100. public class UserProfileMappingProfile : Profile
  101. {
  102. public UserProfileMappingProfile()
  103. {
  104. this.CreateMap<x_ScanUsers, UserProfile>()
  105. .ForMember(dest => dest.AccountDisabled, opt => opt.MapFrom(src => src.Account_Disabled))
  106. .ForMember(dest => dest.Active, opt => opt.MapFrom(src => src.Active))
  107. .ForMember(dest => dest.CannotChangePassword, opt => opt.MapFrom(src => src.Cannot_Change_Password))
  108. .ForMember(dest => dest.MustChangePasswordAtNextLogon, opt => opt.MapFrom(src => src.Change_Password))
  109. .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Code_ID))
  110. .ForMember(dest => dest.PasswordNeverExpires, opt => opt.MapFrom(src => src.Password_Never_Expire))
  111. .ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.UserName))
  112. ;
  113. }
  114. }
  115.  
  116. public class x_ScanUsers
  117. {
  118. public string Account_Disabled { get; set; }
  119. public string Active { get; set; }
  120. public string Cannot_Change_Password { get; set; }
  121. public string Change_Password { get; set; }
  122. public int Code_ID { get; set; }
  123. public string Password_Never_Expire { get; set; }
  124. public string UserName { get; set; }
  125. }
  126. }
Add Comment
Please, Sign In to add comment