Property_Bool_Test.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using System.Data;
  4. using Microsoft.VisualStudio.TestTools.UnitTesting;
  5. namespace Vitorm.MsTest.CommonTest
  6. {
  7. [TestClass]
  8. public class Property_Bool_Test
  9. {
  10. [TestMethod]
  11. public void Test()
  12. {
  13. using var dbContext = DataSource.CreateDbContextForWriting();
  14. // #1 Init
  15. var name = Guid.NewGuid().ToString();
  16. var dbSet = dbContext.DbSet<MyUser>();
  17. dbSet.TryDropTable();
  18. dbSet.TryCreateTable();
  19. dbSet.Add(new MyUser { id = 1, enable = true, isEven = null });
  20. dbSet.Add(new MyUser { id = 2, enable = true, isEven = true });
  21. dbSet.Add(new MyUser { id = 3, enable = false, isEven = false });
  22. DataSource.WaitForUpdate();
  23. // #2 Assert
  24. {
  25. var user = dbSet.Query().Where(m => m.enable == true).OrderBy(m => m.id).First();
  26. Assert.AreEqual(1, user.id);
  27. }
  28. {
  29. var user = dbSet.Query().Where(m => m.enable == false).OrderBy(m => m.id).First();
  30. Assert.AreEqual(3, user.id);
  31. }
  32. {
  33. var user = dbSet.Query().Where(m => m.enable).OrderBy(m => m.id).First();
  34. Assert.AreEqual(1, user.id);
  35. }
  36. {
  37. var user = dbSet.Query().Where(m => !m.enable).OrderBy(m => m.id).First();
  38. Assert.AreEqual(3, user.id);
  39. }
  40. {
  41. var user = dbSet.Query().Where(m => m.isEven == null).OrderBy(m => m.id).First();
  42. Assert.AreEqual(1, user.id);
  43. }
  44. {
  45. var user = dbSet.Query().Where(m => m.isEven == true).OrderBy(m => m.id).First();
  46. Assert.AreEqual(2, user.id);
  47. }
  48. {
  49. var user = dbSet.Query().Where(m => m.isEven == false).OrderBy(m => m.id).First();
  50. Assert.AreEqual(3, user.id);
  51. }
  52. {
  53. var user = dbSet.Query().Where(m => m.isEven.Value).OrderBy(m => m.id).First();
  54. Assert.AreEqual(2, user.id);
  55. }
  56. {
  57. var user = dbSet.Query().Where(m => !m.isEven.Value).OrderBy(m => m.id).First();
  58. Assert.AreEqual(3, user.id);
  59. }
  60. {
  61. var query = dbSet.Query().Where(m => m.isEven.Value).OrderBy(m => m.isEven).Select(m => new { m.id, m.isEven });
  62. var sql = query.ToExecuteString();
  63. var users = query.ToList();
  64. var user = users.First();
  65. Assert.AreEqual(2, user.id);
  66. Assert.AreEqual(true, user.isEven);
  67. }
  68. }
  69. // Entity
  70. [Table("MyUser")]
  71. public class MyUser
  72. {
  73. [Key]
  74. public int id { get; set; }
  75. public bool? isEven { get; set; }
  76. public bool enable { get; set; }
  77. }
  78. }
  79. }