BaseTest.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using Vit.Core.Module.Serialization;
  3. using Vit.Linq;
  4. using Vit.Linq.FilterRules.ComponentModel;
  5. namespace Vitorm.MsTest
  6. {
  7. public class BaseTest
  8. {
  9. public static void TestDbSet(IDbSet dbSet)
  10. {
  11. // #1 Create : Add AddRange
  12. dbSet.Add(new { id = 2, name = "u246" });
  13. dbSet.AddRange(new[]{
  14. new {id=3,name="u356" },
  15. new {id=4,name="u400" },
  16. new {id=5,name="u500" },
  17. new {id=6,name="u600" }
  18. });
  19. // #2 Retrieve : Get Query
  20. #region Get
  21. {
  22. dynamic user = dbSet.Get(2);
  23. string name = user.name;
  24. Assert.AreEqual("u246", name);
  25. }
  26. #endregion
  27. #region Query
  28. {
  29. var query = dbSet.Query();
  30. var strFilter = "{'field':'id', 'operator': '=', 'value': 3 }".Replace("'", "\"");
  31. var filter = Json.Deserialize<FilterRule>(strFilter);
  32. var users = query.IQueryable_Where(filter).IQueryable_ToList();
  33. dynamic user = users[0];
  34. string name = user.name;
  35. Assert.AreEqual("u356", name);
  36. }
  37. #endregion
  38. #region #3 Update: Update UpdateRange
  39. {
  40. dbSet.Update(new { id = 2, name = "u246_" });
  41. dbSet.UpdateRange(new[]{
  42. new {id=3,name="u356_" },
  43. new {id=4,name="u400_" }
  44. });
  45. dynamic user = dbSet.Get(2);
  46. Assert.AreEqual("u246_", (string)user.name);
  47. }
  48. #endregion
  49. #region #4 Delete : Delete DeleteRange DeleteByKey DeleteByKeys
  50. {
  51. dbSet.Delete(new { id = 2, name = "u246_" });
  52. dbSet.DeleteRange(new[]{
  53. new {id=3,name="u356_" },
  54. new {id=4,name="u400_" }
  55. });
  56. dbSet.DeleteByKey(1);
  57. dbSet.DeleteByKeys(new[] { 5, 6 });
  58. var query = dbSet.Query();
  59. var count = query.IQueryable_Count();
  60. Assert.AreEqual(0, count);
  61. }
  62. #endregion
  63. }
  64. }
  65. }