Orm_Extensions_ExecuteUpdateAsync_Test.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CommonTest
  4. {
  5. [TestClass]
  6. public class Orm_Extensions_ExecuteUpdateAsync_Test
  7. {
  8. [TestMethod]
  9. public async Task Test_ExecuteUpdate()
  10. {
  11. using var dbContext = DataSource.CreateDbContext();
  12. var userQuery = dbContext.Query<User>();
  13. {
  14. var count = await userQuery.ExecuteUpdateAsync(row => new User
  15. {
  16. name = "u_" + row.id + "_" + (row.fatherId.ToString() ?? "") + "_" + (row.motherId.ToString() ?? ""),
  17. birth = DateTime.Parse("2021-01-11 00:00:00")
  18. });
  19. Assert.AreEqual(6, count);
  20. var userList = userQuery.ToList();
  21. Assert.AreEqual("u_1_4_6", userList.First().name);
  22. Assert.AreEqual(DateTime.Parse("2021-01-11 00:00:00"), userList.First().birth);
  23. Assert.AreEqual("u_6__", userList.Last().name);
  24. }
  25. {
  26. var query = from user in userQuery
  27. from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
  28. select new
  29. {
  30. user,
  31. father,
  32. user.motherId
  33. };
  34. var count = await query.ExecuteUpdateAsync(row => new User
  35. {
  36. name = "u2_" + row.user.id + "_" + (row.father.id.ToString() ?? "") + "_" + (row.motherId.ToString() ?? "")
  37. });
  38. Assert.AreEqual(6, count);
  39. var userList = userQuery.ToList();
  40. Assert.AreEqual("u2_1_4_6", userList.First().name);
  41. Assert.AreEqual("u2_6__", userList.Last().name);
  42. }
  43. {
  44. var query = from user in userQuery
  45. from father in userQuery.Where(father => user.fatherId == father.id).DefaultIfEmpty()
  46. where user.id <= 5 && father != null
  47. select new
  48. {
  49. user,
  50. father,
  51. user.motherId
  52. };
  53. var count = await query.ExecuteUpdateAsync(row => new User
  54. {
  55. name = "u3_" + row.user.id + "_" + (row.father.id.ToString() ?? "") + "_" + (row.motherId.ToString() ?? "")
  56. });
  57. Assert.AreEqual(3, count);
  58. var userList = userQuery.ToList();
  59. Assert.AreEqual("u3_1_4_6", userList[0].name);
  60. Assert.AreEqual("u3_3_5_6", userList[2].name);
  61. Assert.AreEqual("u2_4__", userList[3].name);
  62. }
  63. }
  64. }
  65. }