Property_Numeric_Test.cs 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. namespace Vitorm.MsTest.CommonTest
  4. {
  5. [TestClass]
  6. public class Property_Numeric_Test
  7. {
  8. // Enumerable.Contains
  9. [TestMethod]
  10. public void Test_In()
  11. {
  12. using var dbContext = DataSource.CreateDbContext();
  13. var userQuery = dbContext.Query<User>();
  14. // Enumerable.Contains
  15. {
  16. var userList = userQuery.Where(u => new[] { 3, 5 }.Contains(u.id)).ToList();
  17. Assert.AreEqual(2, userList.Count);
  18. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
  19. }
  20. // Enumerable.Contains
  21. {
  22. var ids = new[] { 3, 5 }.AsEnumerable();
  23. var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
  24. Assert.AreEqual(2, userList.Count);
  25. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
  26. }
  27. // List.Contains
  28. {
  29. var ids = new[] { 3, 5 }.ToList();
  30. var userList = userQuery.Where(u => ids.Contains(u.id)).ToList();
  31. Assert.AreEqual(2, userList.Count);
  32. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
  33. }
  34. // not Contains
  35. {
  36. var userList = userQuery.Where(u => !new[] { 3, 5 }.Contains(u.id)).ToList();
  37. Assert.AreEqual(4, userList.Count);
  38. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 2, 4, 6 }).Count());
  39. }
  40. }
  41. [TestMethod]
  42. public void Test_Equal()
  43. {
  44. using var dbContext = DataSource.CreateDbContext();
  45. var userQuery = dbContext.Query<User>();
  46. // #1 ==
  47. {
  48. var userList = userQuery.Where(u => u.id == 3 || 5 == u.id).ToList();
  49. Assert.AreEqual(2, userList.Count);
  50. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 5 }).Count());
  51. }
  52. // #2 !=
  53. {
  54. var userList = userQuery.Where(u => u.id != 1).ToList();
  55. Assert.AreEqual(5, userList.Count);
  56. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 2, 3, 4, 5, 6 }).Count());
  57. }
  58. {
  59. var userList = userQuery.Where(u => 1 != u.id).ToList();
  60. Assert.AreEqual(5, userList.Count);
  61. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 2, 3, 4, 5, 6 }).Count());
  62. }
  63. }
  64. [TestMethod]
  65. public void Test_Compare()
  66. {
  67. using var dbContext = DataSource.CreateDbContext();
  68. var userQuery = dbContext.Query<User>();
  69. // #1 > and <
  70. {
  71. var userList = userQuery.Where(u => u.id > 2).Where(m => m.id < 4).ToList();
  72. Assert.AreEqual(1, userList.Count);
  73. Assert.AreEqual(3, userList.First().id);
  74. }
  75. // #2 > or <
  76. {
  77. var userList = userQuery.Where(u => u.id > 5 || u.id < 2).ToList();
  78. Assert.AreEqual(2, userList.Count);
  79. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 6 }).Count());
  80. }
  81. // #3 >= or <=
  82. {
  83. var userList = userQuery.Where(u => u.id >= 6 || u.id <= 1).ToList();
  84. Assert.AreEqual(2, userList.Count);
  85. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 1, 6 }).Count());
  86. }
  87. // #4 in right side
  88. {
  89. var userList = userQuery.Where(u => 4 >= u.id && 3 <= u.id).ToList();
  90. Assert.AreEqual(2, userList.Count);
  91. Assert.AreEqual(0, userList.Select(m => m.id).Except(new[] { 3, 4 }).Count());
  92. }
  93. }
  94. }
  95. }