public void CreateReturnsClassInRepository() { var model = new ClassesCreateViewModel { DayOfWeek = DaysOfWeek.Понеделник.ToString(), Discipline = Disciplines.Английски_език.ToString(), Room = Room.Стая_1.ToString(), TimeOfDay = "11:00 - 12:30", TeacherId = "teacherId", StudentIds = new List <string> { "studentId" } }; var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "Create_Classes_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); var repository = new DbRepository <LearningPlusClass>(dbContext); var classesService = new ClassesService(null, null, repository, null); var createdModel = classesService.Create(model); repository.All().CountAsync().GetAwaiter().GetResult().ShouldBe(1); }
public void DeleteByIdReturnsInactiveClass() { var teacher = new Mock <LearningPlusUser>(); teacher.Setup(t => t.Id).Returns("teacherId"); teacher.Setup(t => t.FirstName).Returns("TeacherFirst"); teacher.Setup(t => t.LastName).Returns("TeacherLast"); var model = new ClassesCreateViewModel { DayOfWeek = DaysOfWeek.Понеделник.ToString(), Discipline = Disciplines.Английски_език.ToString(), Room = Room.Стая_1.ToString(), TimeOfDay = "11:00 - 12:30", TeacherId = "teacherId", StudentIds = new List <string> { "studentId" } }; var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "Delete_Classes_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.Users.Add(teacher.Object); var repository = new DbRepository <LearningPlusClass>(dbContext); var classesService = new ClassesService(null, null, repository, null); var createdModel = classesService.Create(model); var id = createdModel.Id.ToString(); var deletedClass = classesService.DeleteById(id); deletedClass.Active.ShouldBe(false); }
public void GetMessagesReturnsCorrectCollection(int value) { var mockMessage = new Mock <LearningPlusChat>(); mockMessage.Setup(m => m.Message).Returns("NewMessage"); var mock2Message = new Mock <LearningPlusChat>(); mock2Message.Setup(m => m.Message).Returns("NewMessage"); var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "FakeDelete_News_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.Add(mockMessage.Object); dbContext.Add(mock2Message.Object); dbContext.SaveChanges(); var chatRepo = new DbRepository <LearningPlusChat>(dbContext); var chatService = new ChatService(chatRepo, null); var messages = chatService.GetMessages(value); messages.Count().ShouldBe(2); }
public void GetScheduleClassesReturnsCorrectClasses() { var student = new Mock <LearningPlusUser>(); student.Setup(t => t.Id).Returns("studentId"); student.Setup(t => t.FirstName).Returns("First"); student.Setup(t => t.LastName).Returns("Last"); var model = new ClassesCreateViewModel { DayOfWeek = DaysOfWeek.Понеделник.ToString(), Discipline = Disciplines.Английски_език.ToString(), Room = Room.Стая_1.ToString(), TimeOfDay = "11:00 - 12:30", TeacherId = "teacherId", StudentIds = new List <string> { "studentId" } }; var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "Schedule_Classes_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.Users.Add(student.Object); var repository = new DbRepository <LearningPlusClass>(dbContext); var classesService = new ClassesService(null, null, repository, null); var createdModel = classesService.Create(model); var classes = classesService.GetScheduleClasses(); classes.Count.ShouldBe(1); }
public void GetAdminNewsReturnsCorrectCollection() { var mockNews = new Mock <LearningPlusNews>(); mockNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(2)); var mockSndNews = new Mock <LearningPlusNews>(); mockSndNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddSeconds(5)); var mockOldNews = new Mock <LearningPlusNews>(); mockOldNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(-1)); var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "GetAdminNews_News_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.News.Add(mockNews.Object); dbContext.News.Add(mockSndNews.Object); dbContext.News.Add(mockOldNews.Object); dbContext.SaveChanges(); var newsRepo = new DbRepository <LearningPlusNews>(dbContext); var lpNewsService = new LearningPlusNewsService(null, newsRepo); var news = lpNewsService.GetAdminNews(); news.Count.ShouldBe(2); }
public void GetByIdReturnsCorrectNews() { var mockNews = new Mock <LearningPlusNews>(); var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "GetById_News_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.News.Add(mockNews.Object); dbContext.SaveChanges(); var newsRepo = new DbRepository <LearningPlusNews>(dbContext); var newsId = newsRepo.All().FirstOrDefaultAsync().GetAwaiter().GetResult().Id.ToString(); var lpNewsService = new LearningPlusNewsService(null, newsRepo); var newsById = lpNewsService.GetById(newsId); newsById.CountAsync().GetAwaiter().GetResult().ShouldBe(1); }
private static void CreateUsersAndRoles(UserManager <LearningPlusUser> userManager, RoleManager <IdentityRole> roleManager, LearningPlusDbContext db) { Task.Run(async() => { string[] usersAndRoles = { "Admin", "Teacher", "Parent", "Child" }; foreach (var role in usersAndRoles) { var adminRoleExists = await roleManager.RoleExistsAsync(role); if (!adminRoleExists) { await roleManager.CreateAsync(new IdentityRole { Name = role }); } } foreach (var username in usersAndRoles) { var user = await userManager.FindByNameAsync(username); if (user == null) { user = new LearningPlusUser { UserName = username, FirstName = $"First{username}", LastName = $"{username}LastName", Email = $"{username}@{username}world.som" }; await userManager.CreateAsync(user, "123456"); await userManager.AddToRoleAsync(user, username); } } var child = db.Users.FirstOrDefault(u => u.UserName == "Child"); var parent = db.Users.FirstOrDefault(u => u.UserName == "Parent"); parent.Children.Add(child); }).Wait(); }
public void FakeDeleteReturnsCorrectItem() { var mockNews = new Mock <LearningPlusNews>(); mockNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow); var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "FakeDelete_News_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.News.Add(mockNews.Object); dbContext.SaveChanges(); var newsRepo = new DbRepository <LearningPlusNews>(dbContext); var lpNewsService = new LearningPlusNewsService(null, newsRepo); var id = newsRepo.All().FirstOrDefaultAsync().GetAwaiter().GetResult().Id.ToString(); var news = lpNewsService.FakeDelete(id); DateTime.UtcNow.AddDays(-1).ShouldBeLessThanOrEqualTo(news.ExpiresOn); }
private static void CreateNews(LearningPlusDbContext db) { if (db.News.Count() == 0) { var holidays = new string[] { "3-ти март", "1-ви юни", }; var newsRange = new List <LearningPlusNews>(); foreach (var day in holidays) { var news = new LearningPlusNews { Creator = db.Users.FirstOrDefault(u => u.UserName == "Admin"), Message = $"{day} е национален празник и центърът ще почива!", TargetRoles = new List <LearningPlusNewsTargetRole>() { new LearningPlusNewsTargetRole { TargetRole = UserRoles.Admin }, new LearningPlusNewsTargetRole { TargetRole = UserRoles.Teacher }, new LearningPlusNewsTargetRole { TargetRole = UserRoles.Parent }, new LearningPlusNewsTargetRole { TargetRole = UserRoles.Child } } }; newsRange.Add(news); } var adminNews = new LearningPlusNews { Creator = db.Users.FirstOrDefault(u => u.UserName == "Admin"), Message = $"Администраторите ще работят от вкъщи.", TargetRoles = new List <LearningPlusNewsTargetRole>() { new LearningPlusNewsTargetRole { TargetRole = UserRoles.Admin } } }; var teacherNews = new LearningPlusNews { Creator = db.Users.FirstOrDefault(u => u.UserName == "Teacher"), Message = $"Учителите ще работят днес до обяд.", TargetRoles = new List <LearningPlusNewsTargetRole>() { new LearningPlusNewsTargetRole { TargetRole = UserRoles.Teacher } } }; var childParentNews = new LearningPlusNews { Creator = db.Users.FirstOrDefault(u => u.UserName == "Admin"), Message = $"Децата ще посетят клас по оригами.", TargetRoles = new List <LearningPlusNewsTargetRole>() { new LearningPlusNewsTargetRole { TargetRole = UserRoles.Parent }, new LearningPlusNewsTargetRole { TargetRole = UserRoles.Child } } }; newsRange.Add(adminNews); newsRange.Add(teacherNews); newsRange.Add(childParentNews); db.News.AddRange(newsRange); db.SaveChanges(); } }
public DbRepository(LearningPlusDbContext context) { this.context = context; this.dbSet = this.context.Set <TEntity>(); }
public void GetArchivedNewsReturnsCorrectCollection() { var mockNews = new Mock <LearningPlusNews>(); mockNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(2)); var mockAdminNews = new Mock <LearningPlusNews>(); mockAdminNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddSeconds(5)); mockAdminNews.Setup(n => n.TargetRoles).Returns(new List <LearningPlusNewsTargetRole> { new LearningPlusNewsTargetRole { TargetRole = Models.Enums.UserRoles.Admin } }); var mockTeacherNews = new Mock <LearningPlusNews>(); mockTeacherNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(2)); mockTeacherNews.Setup(n => n.TargetRoles).Returns(new List <LearningPlusNewsTargetRole> { new LearningPlusNewsTargetRole { TargetRole = Models.Enums.UserRoles.Teacher } }); var mockParentNews = new Mock <LearningPlusNews>(); mockParentNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(2)); mockParentNews.Setup(n => n.TargetRoles).Returns(new List <LearningPlusNewsTargetRole> { new LearningPlusNewsTargetRole { TargetRole = Models.Enums.UserRoles.Parent } }); var mockChildNews = new Mock <LearningPlusNews>(); mockChildNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(2)); mockChildNews.Setup(n => n.TargetRoles).Returns(new List <LearningPlusNewsTargetRole> { new LearningPlusNewsTargetRole { TargetRole = Models.Enums.UserRoles.Child } }); var mockChildSndNews = new Mock <LearningPlusNews>(); mockChildSndNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(-1)); mockChildSndNews.Setup(n => n.TargetRoles).Returns(new List <LearningPlusNewsTargetRole> { new LearningPlusNewsTargetRole { TargetRole = Models.Enums.UserRoles.Child } }); var mockOldNews = new Mock <LearningPlusNews>(); mockOldNews.Setup(n => n.ExpiresOn).Returns(DateTime.UtcNow.AddDays(-1)); var options = new DbContextOptionsBuilder <LearningPlusDbContext>() .UseInMemoryDatabase(databaseName: "GetArchivedNews_News_Database") // Give a Unique name to the DB .Options; var dbContext = new LearningPlusDbContext(options); dbContext.News.Add(mockAdminNews.Object); dbContext.News.Add(mockTeacherNews.Object); dbContext.News.Add(mockNews.Object); dbContext.News.Add(mockOldNews.Object); dbContext.News.Add(mockParentNews.Object); dbContext.News.Add(mockChildNews.Object); dbContext.News.Add(mockChildSndNews.Object); dbContext.News.Add(mockOldNews.Object); dbContext.SaveChanges(); var newsRepo = new DbRepository <LearningPlusNews>(dbContext); var lpNewsService = new LearningPlusNewsService(null, newsRepo); var news = lpNewsService.GetArchivedNews(); news.Count.ShouldBe(2); }