Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public Task Update(RozkladUser rozkladUser)
        {
            var wrapper = new RozkladUserWrapper(rozkladUser);

            _dbContext.RozkladUserWrappers.Update(wrapper);
            _memoryCache.Set(wrapper.Guid, wrapper);
            return(_dbContext.SaveChangesAsync());
        }
Ejemplo n.º 4
0
        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());
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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();
 }
Ejemplo n.º 9
0
 public TelegramRozkladUser FillFromRozkladUser(RozkladUser user)
 {
     FacultyGroups = user.FacultyGroups;
     return(this);
 }