MapperExtentionsTest.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Masuit.Tools.Mapping;
  2. using Masuit.Tools.Mapping.Extensions;
  3. using Masuit.Tools.UnitTest.Mapping.ClassTests;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. using System;
  6. using System.Linq.Expressions;
  7. namespace Masuit.Tools.UnitTest.Mapping.Extentions
  8. {
  9. [TestClass]
  10. public class MapperExtentionsTest
  11. {
  12. [ClassInitialize]
  13. public static void Init(TestContext context)
  14. {
  15. Clean();
  16. ExpressionMapper.CreateMap<ClassSource, ClassDest>().ForMember(s => s.PropString1, d => d.PropString2).ReverseMap();
  17. ExpressionMapper.CreateMap<ClassDest2, ClassSource2>().ForMember(s => s.PropString2, d => d.PropString1).ReverseMap();
  18. ExpressionMapper.Initialize();
  19. }
  20. [ClassCleanup]
  21. public static void Clean()
  22. {
  23. ExpressionMapper.Reset();
  24. }
  25. [TestMethod]
  26. public void ConvertTo_SimpleExpression_Success()
  27. {
  28. Expression<Func<ClassDest, bool>> expected = x => x.PropString2 == "test";
  29. var actual = expected.ConvertTo<ClassDest, ClassSource>() as LambdaExpression;
  30. var test = actual.Body as BinaryExpression;
  31. Assert.IsNotNull(actual);
  32. Assert.IsInstanceOfType(test.Left, typeof(MemberExpression));
  33. Assert.AreEqual((test.Left as MemberExpression).Member.ReflectedType, typeof(ClassSource));
  34. Assert.AreEqual((test.Left as MemberExpression).Member.Name, "PropString1");
  35. }
  36. [TestMethod]
  37. public void ConvertTo_WithType()
  38. {
  39. Clean();
  40. ExpressionMapper.CreateMap<ClassSource, ClassDest>().ForMember(s => s.PropString1, d => d.PropString2).ReverseMap();
  41. Expression<Func<ClassDest, bool>> expected = x => x.PropString2 == "test";
  42. var actual = expected.ConvertTo(typeof(ClassSource)) as LambdaExpression;
  43. var test = actual.Body as BinaryExpression;
  44. Assert.IsNotNull(actual);
  45. Assert.IsInstanceOfType(test.Left, typeof(MemberExpression));
  46. Assert.AreEqual((test.Left as MemberExpression).Member.ReflectedType, typeof(ClassSource));
  47. Assert.AreEqual((test.Left as MemberExpression).Member.Name, "PropString1");
  48. }
  49. }
  50. }