public async Task Add__Adding_Not_Existed_RozkladUser() { var expectedRozkladUser = new RozkladUser(); expectedRozkladUser.FacultyGroups.AddRange(GetMockGroupList1()); expectedRozkladUser.IsDeleted = false; await using (var context = new NpuRozkladContext(GetContextOptions("add1"))) { var repo = new RozkladUsersDao(context, Mock.Of <IFacultyGroupsProvider>(), StubCache); await repo.Add(expectedRozkladUser); } RozkladUserWrapper actualRozkladUserWrapper; await using (var context = new NpuRozkladContext(GetContextOptions("add1"))) { actualRozkladUserWrapper = await context.RozkladUserWrappers.SingleAsync(); } Assert.AreEqual(expectedRozkladUser.Guid, actualRozkladUserWrapper.Guid); Assert.AreEqual(expectedRozkladUser.IsDeleted, actualRozkladUserWrapper.IsDeleted); Assert.AreEqual(expectedRozkladUser.FacultyGroups.Count, actualRozkladUserWrapper.FacultyGroupsTypeIds.Count); foreach (var group in expectedRozkladUser.FacultyGroups) { Assert.Contains(group.TypeId, actualRozkladUserWrapper.FacultyGroupsTypeIds); } }
public async Task Delete__Deleting_Existing_RozkladUser__Should_Change_IsDeleted_Property() { var expectedRozkladUser = new RozkladUser(); expectedRozkladUser.FacultyGroups.AddRange(GetMockGroupList1()); expectedRozkladUser.IsDeleted = false; await using (var context = new NpuRozkladContext(GetContextOptions("delete1"))) { await context.AddAsync(new RozkladUserWrapper(expectedRozkladUser)); await context.SaveChangesAsync(); } await using (var context = new NpuRozkladContext(GetContextOptions("delete1"))) { var repo = new RozkladUsersDao(context, Mock.Of <IFacultyGroupsProvider>(), StubCache); await repo.Delete(expectedRozkladUser); } RozkladUserWrapper actualRozkladUserWrapper; await using (var context = new NpuRozkladContext(GetContextOptions("delete1"))) { actualRozkladUserWrapper = await context.RozkladUserWrappers.SingleAsync(); Assert.AreEqual(1, context.RozkladUserWrappers.Count()); } Assert.AreEqual(expectedRozkladUser.Guid, actualRozkladUserWrapper.Guid); Assert.True(actualRozkladUserWrapper.IsDeleted); Assert.AreEqual(0, actualRozkladUserWrapper.FacultyGroupsTypeIds.Count); }
public Task Update(RozkladUser rozkladUser) { var wrapper = new RozkladUserWrapper(rozkladUser); _dbContext.RozkladUserWrappers.Update(wrapper); _memoryCache.Set(wrapper.Guid, wrapper); return(_dbContext.SaveChangesAsync()); }
public Task Delete(RozkladUser rozkladUser) { rozkladUser.IsDeleted = true; rozkladUser.FacultyGroups.Clear(); var wrapper = new RozkladUserWrapper(rozkladUser); _dbContext.RozkladUserWrappers.Update(wrapper); _memoryCache.Remove(wrapper.Guid); return(_dbContext.SaveChangesAsync()); }
public async Task Find__Should_Find_RozkladUser_And_Fill_Groups_List_From_String() { var expectedRozkladUser = new RozkladUser(); expectedRozkladUser.FacultyGroups.AddRange(GetMockGroupList1()); expectedRozkladUser.IsDeleted = false; await using (var context = new NpuRozkladContext(GetContextOptions("find1"))) { await context.AddAsync(new RozkladUserWrapper(expectedRozkladUser)); await context.SaveChangesAsync(); } var providerMock = new Mock <IFacultyGroupsProvider>(); providerMock.Setup(p => p.GetFacultyGroups()) .ReturnsAsync(GetMockGroupList1()); RozkladUser actualRozkladUser = null; await using (var context = new NpuRozkladContext(GetContextOptions("find1"))) { var repo = new RozkladUsersDao(context, providerMock.Object, StubCache); actualRozkladUser = await repo.Find(expectedRozkladUser.Guid); } Assert.NotNull(actualRozkladUser); Assert.AreEqual(expectedRozkladUser.Guid, actualRozkladUser.Guid); Assert.AreEqual(expectedRozkladUser.IsDeleted, actualRozkladUser.IsDeleted); foreach (var expectedFacultyGroup in expectedRozkladUser.FacultyGroups) { var actualFacultyGroup = actualRozkladUser.FacultyGroups.FirstOrDefault( g => g.TypeId == expectedFacultyGroup.TypeId); Assert.NotNull(actualRozkladUser); Assert.AreEqual(expectedFacultyGroup.Faculty, actualFacultyGroup.Faculty); Assert.AreEqual(expectedFacultyGroup.Name, actualFacultyGroup.Name); } }
public async Task Update__Updating_Existed_RozkladUser() { var expectedRozkladUser = new RozkladUser(); expectedRozkladUser.FacultyGroups.AddRange(GetMockGroupList1()); expectedRozkladUser.IsDeleted = false; await using (var context = new NpuRozkladContext(GetContextOptions("update1"))) { await context.AddAsync(new RozkladUserWrapper(expectedRozkladUser)); await context.SaveChangesAsync(); } await using (var context = new NpuRozkladContext(GetContextOptions("update1"))) { var repo = new RozkladUsersDao(context, Mock.Of <IFacultyGroupsProvider>(), StubCache); expectedRozkladUser.FacultyGroups.Add(new Group("c", "C", expectedRozkladUser.FacultyGroups.First().Faculty)); await repo.Update(expectedRozkladUser); } RozkladUserWrapper actualRozkladUserWrapper; await using (var context = new NpuRozkladContext(GetContextOptions("update1"))) { actualRozkladUserWrapper = await context.RozkladUserWrappers.SingleAsync(); Assert.AreEqual(1, context.RozkladUserWrappers.Count()); } Assert.AreEqual(expectedRozkladUser.Guid, actualRozkladUserWrapper.Guid); Assert.False(actualRozkladUserWrapper.IsDeleted); Assert.AreEqual(expectedRozkladUser.FacultyGroups.Count, actualRozkladUserWrapper.FacultyGroupsTypeIds.Count); foreach (var group in expectedRozkladUser.FacultyGroups) { Assert.Contains(group.TypeId, actualRozkladUserWrapper.FacultyGroupsTypeIds); } }
public async Task Add(RozkladUser rozkladUser) { var alreadyExistedUser = await _dbContext.RozkladUserWrappers .AsNoTracking() .Where(u => u.Guid == rozkladUser.Guid) .FirstOrDefaultAsync(); if (alreadyExistedUser == null) { var wrapper = new RozkladUserWrapper(rozkladUser); _memoryCache.Set(wrapper.Guid, wrapper); await _dbContext.RozkladUserWrappers.AddAsync(wrapper); } else { alreadyExistedUser.IsDeleted = false; _memoryCache.Set(alreadyExistedUser.Guid, alreadyExistedUser); _dbContext.RozkladUserWrappers.Update(alreadyExistedUser); } await _dbContext.SaveChangesAsync(); }
public RozkladUserWrapper(RozkladUser rozkladUser) : base(rozkladUser) { FacultyGroupsTypeIds = FacultyGroups.Select(g => g.TypeId).ToList(); }
public TelegramRozkladUser FillFromRozkladUser(RozkladUser user) { FacultyGroups = user.FacultyGroups; return(this); }