1 using System.Collections.Generic;
3 using Microsoft.EntityFrameworkCore;
16 private readonly Mock<DbSet<Department>> _mockDbSetDepartments =
MockProvider.GetMockSet(GetTestDepartments().AsQueryable());
17 private readonly Mock<DbSet<ScientificWork>> _mockDbSetScientificWorks =
MockProvider.GetMockSet(GetTestScientificWorks().AsQueryable());
18 private readonly Mock<DbSet<UserProfile>> _mockDbSetUserProfiles =
MockProvider.GetMockSet(GetTestUserProfiles().AsQueryable());
20 private static IEnumerable<Department> GetTestDepartments()
29 private static IEnumerable<ScientificWork> GetTestScientificWorks()
33 TestData.ScientificWork1,
34 TestData.ScientificWork2
38 private static IEnumerable<UserProfile> GetTestUserProfiles()
48 private Mock<ScientificReportDbContext> GetMockContext()
50 var mockContext =
new Mock<ScientificReportDbContext>();
51 mockContext.Setup(item => item.Departments).Returns(_mockDbSetDepartments.Object);
52 mockContext.Setup(item => item.ScientificWorks).Returns(_mockDbSetScientificWorks.Object);
53 mockContext.Setup(item => item.UserProfiles).Returns(_mockDbSetUserProfiles.Object);
60 var list = GetTestDepartments().AsQueryable();
62 var mockContext =
new Mock<ScientificReportDbContext>();
63 mockContext.Setup(item => item.Departments).Returns(
MockProvider.GetMockSet(list).Object);
66 var actual = service.GetAll();
68 Assert.Equal(list.Count(), actual.Count());
75 var actual = service.GetAllWhere(u => u.Id.Equals(TestData.Department1.Id));
76 Assert.Single(actual);
82 var expected = GetTestDepartments().First();
85 var actual = service.GetById(expected.Id);
87 Assert.NotNull(actual);
88 Assert.Equal(expected.Id, actual.Id);
96 var expected = TestData.Department3;
97 service.CreateItem(expected);
99 _mockDbSetDepartments.Verify(m => m.Add(It.IsAny<
Department>()), Times.Once);
107 var expected = GetTestDepartments().First();
108 expected.Title = TestData.Department3.Title;
109 service.UpdateItem(expected);
111 _mockDbSetDepartments.Verify(m => m.Update(expected), Times.Once);
117 var mockContext = GetMockContext();
120 var item = mockContext.Object.Departments.First();
122 Assert.True(service.Exists(item.Id));
124 service.DeleteById(item.Id);
126 Assert.False(service.Exists(item.Id));
134 var item = GetTestDepartments().First();
135 var exists = service.Exists(item.Id);
145 var item = TestData.Department3;
146 var exists = service.Exists(item.Id);
148 Assert.False(exists);
154 var mockContext = GetMockContext();
157 var department = mockContext.Object.Departments.First();
158 Assert.Equal(0, department.ScientificWorks.Count);
160 var sw = mockContext.Object.ScientificWorks.Last();
161 service.AddScientificWork(department.Id, sw);
163 department = _mockDbSetDepartments.Object.First();
164 Assert.Equal(1, department.ScientificWorks.Count);
170 var mockContext = GetMockContext();
173 var department = mockContext.Object.Departments.First();
174 Assert.Equal(1, department.ScientificWorks.Count);
176 var sw = mockContext.Object.ScientificWorks.First();
177 service.RemoveScientificWork(department.Id, sw);
179 department = mockContext.Object.Departments.First();
180 Assert.Equal(0, department.ScientificWorks.Count);
186 var mockContext = GetMockContext();
189 var department = mockContext.Object.Departments.First();
191 service.AddUser(department.Id, TestData.User3);
193 department = mockContext.Object.Departments.First();
195 Assert.Equal(3, department.Staff.Count);
201 var mockContext = GetMockContext();
204 var department = mockContext.Object.Departments.First();
205 Assert.Equal(3, department.Staff.Count);
207 var user1 = mockContext.Object.UserProfiles.First();
209 service.RemoveUser(department.Id, user1);
210 department = mockContext.Object.Departments.First();
212 Assert.Equal(2, department.Staff.Count);
218 var mockContext = GetMockContext();
221 var actual = service.UserIsHired(TestData.User3);
224 actual = service.UserIsHired(TestData.User2);
225 Assert.False(actual);
232 var expected = _mockDbSetDepartments.Object.AsQueryable();
234 Assert.NotNull(expected);
236 var count = expected.Count();
237 var actual = service.GetPage(1, count);
239 Assert.NotNull(actual);
240 Assert.Equal(count, actual.Count());
247 var expected = _mockDbSetDepartments.Object.AsQueryable();
249 Assert.Equal(expected.Count(), service.GetCount());
void RemoveScientificWorkTest()
void AddScientificWorkTest()