Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

LuGroupsDataAccessTest.cs 6.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Luticate2.Auth.DataAccess;
  5. using Luticate2.Auth.DataAccess.Models;
  6. using Luticate2.Auth.Dbo.Groups;
  7. using Luticate2.Utils.Dbo;
  8. using Microsoft.EntityFrameworkCore;
  9. using Moq;
  10. using Xunit;
  11. namespace Test.Auth.Groups
  12. {
  13. public class LuGroupsDataAccessTest
  14. {
  15. [Fact]
  16. public void TestMock()
  17. {
  18. var mockSet = new Mock<DbSet<lu_groups>>();
  19. var mockContext = new Mock<LuDatabaseContext>();
  20. mockContext.Setup(m => m.lu_groups).Returns(mockSet.Object);
  21. var service = new LuGroupsDataAccess(mockContext.Object);
  22. var res = service.AddDbo(new LuGroupsAddDbo {Name = "Test."});
  23. Assert.Equal(LuStatus.Success, res.Status);
  24. Assert.Equal(new Guid().ToString(), res.Data.Id);
  25. Assert.Equal("Test.", res.Data.Name);
  26. mockSet.Verify(m => m.AddRange(It.IsAny<IEnumerable<lu_groups>>()), Times.Once());
  27. mockContext.Verify(m => m.SaveChanges(), Times.Once());
  28. }
  29. [Fact]
  30. public void TestReal1()
  31. {
  32. Tests.TestRealDb(context =>
  33. {
  34. const string name = "Test.";
  35. var service = new LuGroupsDataAccess(context);
  36. var res = service.AddDbo(new LuGroupsAddDbo {Name = name});
  37. Assert.Equal(LuStatus.Success, res.Status);
  38. Assert.NotEqual(new Guid().ToString(), res.Data.Id);
  39. Assert.Equal(name, res.Data.Name);
  40. var get = service.GetSingleById(res.Data.Id);
  41. Assert.Equal(LuStatus.Success, get.Status);
  42. Assert.Equal(name, get.Data.Name);
  43. Assert.Equal(res.Data.Id, get.Data.Id);
  44. });
  45. }
  46. [Fact]
  47. public void TestReal2()
  48. {
  49. Tests.TestRealDb(context =>
  50. {
  51. const string name = "Test.";
  52. var service = new LuGroupsDataAccess(context);
  53. var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
  54. Assert.Equal(LuStatus.Success, res.Status);
  55. Assert.NotEqual(new Guid().ToString(), res.Data);
  56. var get = service.GetSingleById(res.Data);
  57. Assert.Equal(LuStatus.Success, get.Status);
  58. Assert.Equal(name, get.Data.Name);
  59. });
  60. }
  61. [Fact]
  62. public void TestReal3()
  63. {
  64. Tests.TestRealDb(context =>
  65. {
  66. const string name = "Test.";
  67. var service = new LuGroupsDataAccess(context);
  68. var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
  69. Assert.Equal(LuStatus.Success, res.Status);
  70. Assert.NotEqual(new Guid().ToString(), res.Data);
  71. var get = service.GetSingleById(res.Data);
  72. Assert.Equal(LuStatus.Success, get.Status);
  73. Assert.Equal(name, get.Data.Name);
  74. });
  75. }
  76. [Fact]
  77. public void TestReal4()
  78. {
  79. Tests.TestRealDb(context =>
  80. {
  81. var names = new List<string>{"001-Test.", "010-Test.", "030-Test.", "020-Test.", "000-Test."};
  82. var service = new LuGroupsDataAccess(context);
  83. var res = service.AddGuid(names.Select(s => new LuGroupsAddDbo {Name = s}).ToList());
  84. Assert.Equal(LuStatus.Success, res.Status);
  85. foreach (var id in res.Data)
  86. {
  87. Assert.NotEqual(new Guid().ToString(), id);
  88. }
  89. var get = service.GetMultiple(groups => groups.name, 0, 2);
  90. Assert.Equal(LuStatus.Success, get.Status);
  91. Assert.Equal(5, get.Data.Count);
  92. Assert.Equal(2, get.Data.Data.Count);
  93. Assert.Equal("000-Test.", get.Data.Data[0].Name);
  94. Assert.Equal("001-Test.", get.Data.Data[1].Name);
  95. get = service.GetMultiple(groups => groups.name, 2, 2);
  96. Assert.Equal(LuStatus.Success, get.Status);
  97. Assert.Equal(5, get.Data.Count);
  98. Assert.Equal(1, get.Data.Data.Count);
  99. Assert.Equal("030-Test.", get.Data.Data[0].Name);
  100. get = service.GetMultiple(groups => groups.name, 3, 2);
  101. Assert.Equal(LuStatus.Success, get.Status);
  102. Assert.Equal(5, get.Data.Count);
  103. Assert.Equal(0, get.Data.Data.Count);
  104. get = service.GetMultiple(groups => groups.name, groups => groups.name.Contains("0-"), 1, 1);
  105. Assert.Equal(LuStatus.Success, get.Status);
  106. Assert.Equal(4, get.Data.Count);
  107. Assert.Equal(1, get.Data.Data.Count);
  108. Assert.Equal("010-Test.", get.Data.Data[0].Name);
  109. });
  110. }
  111. [Fact]
  112. public void TestReal5()
  113. {
  114. Tests.TestRealDb(context =>
  115. {
  116. string[] names = {"001-Test.", "010-Test.", "030-Test.", "020-Test.", "000-Test."};
  117. var service = new LuGroupsDataAccess(context);
  118. var ids = new List<string>();
  119. foreach (var name in names)
  120. {
  121. var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
  122. Assert.Equal(LuStatus.Success, res.Status);
  123. Assert.NotEqual(new Guid().ToString(), res.Data);
  124. ids.Add(res.Data);
  125. }
  126. var edit = service.Edit(groups => groups.name.Contains("0-"),
  127. groups => groups.name = groups.name + "_Edited", dbos => dbos);
  128. Assert.Equal(LuStatus.Success, edit.Status);
  129. Assert.Equal(4, edit.Data.Count);
  130. var edit2 = service.EditSingleById(ids[0], groups => groups.name = groups.name + "_Edited", dbo => dbo);
  131. Assert.Equal(LuStatus.Success, edit2.Status);
  132. var get = service.GetMultiple(groups => groups.name, groups => groups.name.EndsWith("_Edited"), 0, names.Length);
  133. Assert.Equal(LuStatus.Success, get.Status);
  134. Assert.Equal(names.Length, get.Data.Count);
  135. Assert.Equal(names.Length, get.Data.Data.Count);
  136. });
  137. }
  138. }
  139. }