Orm_Extensions_ExecuteUpdate_Test.cs 2.9 KB

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