BaseMapperDtoTest.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. using qdr.fnd.core.test;
  2. using Quadarax.Application.QLiberace.Base.Dtos;
  3. using Quadarax.Application.QLiberace.Base.Entities;
  4. using Quadarax.Application.QLiberace.Base.Mapper;
  5. using Quadarax.Application.QLiberace.Common.Dtos;
  6. using Quadarax.Application.QLiberace.Common.Entities.Base;
  7. namespace Quadarax.Application.QLiberace.Base.Tests.Mapper
  8. {
  9. [TestFixture(Category = "Mapper")]
  10. public class BaseMapperDtoTest : BaseTest
  11. {
  12. #region *** Contants ***
  13. public const string EntityName = "TestName";
  14. public const string EntityCode = "TestCode";
  15. public const string EntityDescription = "TestDescription";
  16. public const string EntityModifier = "TestModifier";
  17. public const long EntityId = -123;
  18. #endregion
  19. [Test]
  20. public void Tenant2TenantDto()
  21. {
  22. var dao = new Tenant();
  23. dao.Code = EntityCode;
  24. dao.Name = EntityName;
  25. dao.LastAccess = DateTime.Now;
  26. dao.IsLocked = true;
  27. SetTrackedAttributes(dao);
  28. // dao -> dto
  29. var dtoR = dao.Map<Tenant, TenantRDto>();
  30. Assert.IsNotNull(dtoR);
  31. Assert.That(dao.Id,Is.EqualTo(dtoR.Id), $"Dao2Dto Mapping problem '{nameof(dtoR.Id)}'");
  32. Assert.That(dao.Name, Is.EqualTo(dtoR.Name), $"Dao2Dto Mapping problem '{nameof(dtoR.Name)}'");
  33. Assert.That(dao.LastAccess, Is.EqualTo(dtoR.LastAccess), $"Dao2Dto Mapping problem '{nameof(dtoR.LastAccess)}'");
  34. Assert.That(dao.IsLocked, Is.EqualTo(dtoR.IsLocked), $"Dao2Dto Mapping problem '{nameof(dtoR.IsLocked)}'");
  35. var dtoW = new TenantWDto();
  36. dtoW.Code = EntityCode + "X";
  37. dtoW.Name = EntityName + "X";
  38. dtoW.LastAccess = DateTime.Now.AddHours(2);
  39. dtoW.IsLocked = !dtoR.IsLocked;
  40. // dto -> dao
  41. dtoW.CopyToDto(dao);
  42. Assert.IsNotNull(dao);
  43. Assert.IsNull(dtoW.GetType().GetInterface(nameof(ITracked)), $"Write possible base for {dtoW.GetType().Name} must not be ITracked");
  44. Assert.That(dtoW.Name, Is.EqualTo(dao?.Name), $"Dto2Dao Mapping problem '{nameof(dtoW.Name)}'");
  45. Assert.That(dtoW.LastAccess, Is.EqualTo(dao?.LastAccess), $"Dto2Dao Mapping problem '{nameof(dtoW.LastAccess)}'");
  46. Assert.That(dtoW.IsLocked, Is.EqualTo(dao?.IsLocked), $"Dto2Dao Mapping problem '{nameof(dtoW.IsLocked)}'");
  47. }
  48. [Test]
  49. public void User2UserDto()
  50. {
  51. var dao = new User();
  52. dao.LoginName = EntityCode;
  53. dao.IsLocked = true;
  54. SetTrackedAttributes(dao);
  55. // dao -> dto
  56. var dtoR = dao.Map<User, UserRDto>();
  57. Assert.IsNotNull(dtoR);
  58. Assert.That(dao.Id,Is.EqualTo(dtoR.Id), $"Dao2Dto Mapping problem '{nameof(dtoR.Id)}'");
  59. Assert.That(dao.LoginName, Is.EqualTo(dtoR.LoginName), $"Dao2Dto Mapping problem '{nameof(dtoR.LoginName)}'");
  60. Assert.That(dao.IsLocked, Is.EqualTo(dtoR.IsLocked), $"Dao2Dto Mapping problem '{nameof(dtoR.IsLocked)}'");
  61. var dtoW = new UserWDto();
  62. dtoW.LoginName = EntityCode + "X";
  63. dtoW.IsLocked = !dtoR.IsLocked;
  64. // dto -> dao
  65. dtoW.CopyToDto(dao);
  66. Assert.IsNotNull(dao);
  67. Assert.IsNull(dtoW.GetType().GetInterface(nameof(ITracked)), $"Write possible base for {dtoW.GetType().Name} must not be ITracked");
  68. Assert.That(dtoW.LoginName, Is.EqualTo(dao?.LoginName), $"Dto2Dao Mapping problem '{nameof(dtoW.LoginName)}'");
  69. Assert.That(dtoW.IsLocked, Is.EqualTo(dao?.IsLocked), $"Dto2Dao Mapping problem '{nameof(dtoW.IsLocked)}'");
  70. }
  71. private void SetTrackedAttributes(QlbrcEntityTracked entity)
  72. {
  73. entity.Id = EntityId;
  74. entity.Modified = DateTime.Now;
  75. entity.Created = DateTime.Now.AddHours(1);
  76. entity.Modifier = EntityModifier;
  77. }
  78. protected override void OnSetup()
  79. {
  80. }
  81. protected override void OnTearDown()
  82. {
  83. }
  84. }
  85. }