Property_Bool_Test.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 users = query.ToList();
  63. var user = users.First();
  64. Assert.AreEqual(2, user.id);
  65. Assert.AreEqual(true, user.isEven);
  66. }
  67. }
  68. // Entity
  69. [Table("MyUser")]
  70. public class MyUser
  71. {
  72. [Key]
  73. public int id { get; set; }
  74. public bool? isEven { get; set; }
  75. public bool enable { get; set; }
  76. }
  77. }
  78. }