Query_Method_Test.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using System.Data;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Vit.Linq;
  4. namespace Vitorm.MsTest.CustomTest
  5. {
  6. [TestClass]
  7. public class Query_Method_Test
  8. {
  9. [TestMethod]
  10. public async Task ToListAsync()
  11. {
  12. using var dbContext = DataSource.CreateDbContext();
  13. var userQuery = dbContext.Query<User>();
  14. // PlainQuery
  15. {
  16. var list = await userQuery.OrderBy(m => m.fatherId).Select(m => new { fatherId = m.fatherId }).ToListAsync();
  17. var ids = String.Join(',', list.Select(m => m.fatherId));
  18. Assert.AreEqual(",,,4,4,5", ids);
  19. }
  20. // Group
  21. {
  22. var list = await userQuery.GroupBy(m => m.fatherId).OrderBy(g => g.Key).Select(g => new { fatherId = g.Key }).ToListAsync();
  23. var ids = String.Join(',', list.Select(m => m.fatherId));
  24. Assert.AreEqual(",4,5", ids);
  25. }
  26. // PlainDistinctSearch
  27. {
  28. var list = await userQuery.Select(m => new { fatherId = m.fatherId }).OrderBy(m => m.fatherId).Distinct().ToListAsync();
  29. var ids = String.Join(',', list.Select(m => m.fatherId));
  30. Assert.AreEqual(",4,5", ids);
  31. }
  32. }
  33. [TestMethod]
  34. public void ToList()
  35. {
  36. using var dbContext = DataSource.CreateDbContext();
  37. var userQuery = dbContext.Query<User>();
  38. // PlainQuery
  39. {
  40. var list = userQuery.OrderBy(m => m.fatherId).Select(m => new { fatherId = m.fatherId }).ToList();
  41. var ids = String.Join(',', list.Select(m => m.fatherId));
  42. Assert.AreEqual(",,,4,4,5", ids);
  43. }
  44. // Group
  45. {
  46. var list = userQuery.GroupBy(m => m.fatherId).OrderBy(g => g.Key).Select(g => new { fatherId = g.Key }).ToList();
  47. var ids = String.Join(',', list.Select(m => m.fatherId));
  48. Assert.AreEqual(",4,5", ids);
  49. }
  50. // PlainDistinctSearch
  51. {
  52. var list = userQuery.Select(m => new { fatherId = m.fatherId }).OrderBy(m => m.fatherId).Distinct().ToList();
  53. var ids = String.Join(',', list.Select(m => m.fatherId));
  54. Assert.AreEqual(",4,5", ids);
  55. }
  56. }
  57. }
  58. }