Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using AutoMapper;
- using AutoMapper.QueryableExtensions;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using System.Collections.Generic;
- using System.Linq;
- namespace Common.DALTests
- {
- public static class FieldMapper
- {
- public static IMapper GetMapper()
- {
- IMapper mapper = new Mapper(new MapperConfiguration(cfg =>
- {
- cfg.CreateMap<string, bool>().ConvertUsing<GeniusStringBooleanToBooleanConverter>();
- cfg.CreateMap<bool, string>().ConvertUsing<BooleanToGeniusStringBooleanConverter>();
- cfg.AddProfile<UserProfileMappingProfile>();
- }));
- return mapper;
- }
- }
- public class BooleanToGeniusStringBooleanConverter : ITypeConverter<bool, string>
- {
- public string Convert(bool source, string destination, ResolutionContext context)
- {
- return source ? "O" : "N";
- }
- }
- public class GeniusStringBooleanToBooleanConverter : ITypeConverter<string, bool>
- {
- public bool Convert(string source, bool destination, ResolutionContext context)
- {
- return source.ToUpper() == "O";
- }
- }
- [TestClass()]
- public class Test
- {
- public List<x_ScanUsers> GetData()
- {
- return new List<x_ScanUsers>()
- {
- new x_ScanUsers
- {
- Account_Disabled = "O"
- ,Active="N"
- ,Cannot_Change_Password="O"
- ,Change_Password="N"
- ,Code_ID=1
- ,Password_Never_Expire="O"
- ,UserName="bob"
- },
- new x_ScanUsers
- {
- Account_Disabled = "N"
- ,Active="O"
- ,Cannot_Change_Password="O"
- ,Change_Password="N"
- ,Code_ID=1
- ,Password_Never_Expire="O"
- ,UserName="john"
- }
- };
- }
- [TestMethod()]
- public void MapperIsValid()
- {
- FieldMapper.GetMapper().ConfigurationProvider.AssertConfigurationIsValid();
- }
- [TestMethod()]
- public void TypesDoNotMatchWithProjectTo()
- {
- var test = GetData().AsQueryable().ProjectTo<UserProfile>(FieldMapper.GetMapper().ConfigurationProvider).Where(x => x.Username == "bob").First().Active;
- }
- [TestMethod()]
- public void TypesDoNotMatchWithUseAsDataSource()
- {
- var test = GetData().AsQueryable().UseAsDataSource(FieldMapper.GetMapper()).For<UserProfile>().Where(x => x.Username == "bob").First().Active;
- }
- }
- public class UserProfile
- {
- public bool AccountDisabled { get; set; }
- public bool Active { get; set; }
- public bool CannotChangePassword { get; set; }
- public int Id { get; set; }
- public string MustChangePasswordAtNextLogon { get; set; }
- public bool PasswordNeverExpires { get; set; }
- public string Username { get; set; }
- }
- public class UserProfileMappingProfile : Profile
- {
- public UserProfileMappingProfile()
- {
- this.CreateMap<x_ScanUsers, UserProfile>()
- .ForMember(dest => dest.AccountDisabled, opt => opt.MapFrom(src => src.Account_Disabled))
- .ForMember(dest => dest.Active, opt => opt.MapFrom(src => src.Active))
- .ForMember(dest => dest.CannotChangePassword, opt => opt.MapFrom(src => src.Cannot_Change_Password))
- .ForMember(dest => dest.MustChangePasswordAtNextLogon, opt => opt.MapFrom(src => src.Change_Password))
- .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Code_ID))
- .ForMember(dest => dest.PasswordNeverExpires, opt => opt.MapFrom(src => src.Password_Never_Expire))
- .ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.UserName))
- ;
- }
- }
- public class x_ScanUsers
- {
- public string Account_Disabled { get; set; }
- public string Active { get; set; }
- public string Cannot_Change_Password { get; set; }
- public string Change_Password { get; set; }
- public int Code_ID { get; set; }
- public string Password_Never_Expire { get; set; }
- public string UserName { get; set; }
- }
- }
Add Comment
Please, Sign In to add comment