public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(ApplicationDbContextSeeder)); var seeders = new List <ISeeder> { new RolesSeeder(), new SettingsSeeder(), }; foreach (var seeder in seeders) { await seeder.SeedAsync(dbContext, serviceProvider); await dbContext.SaveChangesAsync(); logger.LogInformation($"Seeder {seeder.GetType().Name} done."); } }
public async void ShowLastAppointmentForUserShoulThrowExeption() { //Arrange var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); var appointmentService = new Mock <AppointmentService>(dbContext).Object; AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly); var mockUserStore = new Mock <IUserStore <EClinicUser> >(); var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; dbContext.Users.Add(AdminUserToAdd); dbContext.Users.Add(userToAdd); dbContext.SaveChanges(); var date = new DateTime(2019, 08, 03, 09, 00, 00); await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date); dbContext.Appointments.Where(x => true).ToList(); await Assert.ThrowsAsync <ArgumentException>(async() => await appointmentService.ShowLastAppointmentForUser("")); }
public async void IndexControllerGetPageWhitNonExistingIdShuldReturnRedirectResult() { var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); //var mockUserStore = new Mock<IUserStore<EClinicUser>>(); //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>(); //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); //var userManager = MockHelpers.MockUserManager<EClinicUser>().Object; var menuService = new Mock <MenuService>(dbContext).Object; var pageService = new Mock <PageService>(dbContext).Object; var settingsService = new Mock <SettingsService>(dbContext).Object; AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly); var homeController = new HomeController(menuService, pageService, settingsService); await dbContext.Settings.AddAsync(new Setting { Name = "Site Name", Value = "eClinic" }); await dbContext.Settings.AddAsync(new Setting { Name = "Phone Number", Value = "+123 987 887 765" }); await dbContext.Settings.AddAsync(new Setting { Name = "E-Mail", Value = "*****@*****.**" }); dbContext.SaveChanges(); var result = await homeController.GetPage("sddsdds"); Assert.IsType <RedirectResult>(result); }
public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider) { var roleManager = serviceProvider.GetRequiredService <RoleManager <IdentityRole> >(); await SeedRoleAsync(roleManager, GlobalConstants.AdministratorRoleName); await SeedRoleAsync(roleManager, GlobalConstants.DoctorRoleName); await SeedRoleAsync(roleManager, GlobalConstants.UserRoleName); await SeedRoleAsync(roleManager, GlobalConstants.PharmacistRoleName); }
public async void CreateAppointmentForUnexistingUserAndDoctorShouldThrowExeption() { var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); var appointmentService = new AppointmentService(dbContext); await Assert.ThrowsAsync <ArgumentException> (async() => await appointmentService.CreateAppointment(null, "*****@*****.**", new DateTime(2019, 08, 03, 09, 00, 00))); }
public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext.Settings.Any()) { return; } await dbContext.Settings.AddAsync(new Setting { Name = "Site Name", Value = "eClinic" }); await dbContext.Settings.AddAsync(new Setting { Name = "Phone Number", Value = "+123 987 887 765" }); await dbContext.Settings.AddAsync(new Setting { Name = "E-Mail", Value = "*****@*****.**" }); }
public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext.SitePages.Any()) { return; } List <SitePages> pages = new List <SitePages>(); pages.Add(new SitePages { Title = "About Us", Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer neque libero, pulvinar et elementum quis, facilisis eu ante. " + "Mauris non placerat sapien. Pellentesque tempor arcu non odio scelerisque ullamcorper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam varius eros consequat auctor gravida. Fusce tristique lacus" + " at urna sollicitudin pulvinar. Suspendisse hendrerit ultrices mauris." + "Ut ultricies lacus a rutrum mollis.Orci varius natoque penatibus et magnis dis parturient montes, " + "nascetur ridiculus mus.Sed porta dolor quis felis pulvinar dignissim.Etiam nisl ligula, " + "ullamcorper non metus vitae, " + "maximus efficitur mi.Vivamus ut ex ullamcorper," + " scelerisque lacus nec, " + "commodo dui.Proin massa urna, volutpat vel augue eget, iaculis tristique dui.", CreatedOn = DateTime.UtcNow, }); pages.Add(new SitePages { Title = "Contacts", Content = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer neque libero, pulvinar et elementum quis, facilisis eu ante. " + "Mauris non placerat sapien. Pellentesque tempor arcu non odio scelerisque ullamcorper. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam varius eros consequat auctor gravida. Fusce tristique lacus" + " at urna sollicitudin pulvinar. Suspendisse hendrerit ultrices mauris." + "Ut ultricies lacus a rutrum mollis.Orci varius natoque penatibus et magnis dis parturient montes, " + "nascetur ridiculus mus.Sed porta dolor quis felis pulvinar dignissim.Etiam nisl ligula, " + "ullamcorper non metus vitae, " + "maximus efficitur mi.Vivamus ut ex ullamcorper," + " scelerisque lacus nec, " + "commodo dui.Proin massa urna, volutpat vel augue eget, iaculis tristique dui.", CreatedOn = DateTime.UtcNow, }); await dbContext.SitePages.AddRangeAsync(pages); //await dbContext.Users.AddAsync( //}); }
public DoctorService(EClinicDbContext db, UserManager <EClinicUser> userManager) { this.db = db; this.userManager = userManager; }
public SiteService(EClinicDbContext db) { this.db = db; }
public UsersService(EClinicDbContext db, UserManager <EClinicUser> userManager, IExamService examService) { this.db = db; this.userManager = userManager; this.examService = examService; }
public async void CreateAppointmentForUnexistingUserAndDoctorShouldReturnTrue() { //Arrange var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); var appointmentService = new AppointmentService(dbContext); //var usrManager = MockHelpers.MockUserManager<EClinicUser>(); var mockUserStore = new Mock <IUserStore <EClinicUser> >(); var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); //userManager.UserValidators.Add(new UserValidator<EClinicUser>()); //userManager.PasswordValidators.Add(new PasswordValidator<EClinicUser>()); var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; //await userManager.CreateAsync(AdminUserToAdd); //await userManager.CreateAsync(userToAdd); dbContext.Users.Add(AdminUserToAdd); dbContext.Users.Add(userToAdd); dbContext.SaveChanges(); int count = dbContext.Users.Count(); var result = await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", new DateTime(2019, 08, 03, 09, 00, 00)); Assert.True(result); }
public async Task SeedAsync(EClinicDbContext dbContext, IServiceProvider serviceProvider) { if (dbContext == null) { throw new ArgumentNullException(nameof(dbContext)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var logger = serviceProvider.GetService <ILoggerFactory>().CreateLogger(typeof(SiteDbContextSeeder)); var userStore = serviceProvider.GetService <UserManager <EClinicUser> >(); var seeders = new List <ISeeder> { new SiteSeeder(), }; foreach (var seeder in seeders) { await seeder.SeedAsync(dbContext, serviceProvider); await dbContext.SaveChangesAsync(); logger.LogInformation($"Seeder {seeder.GetType().Name} done."); } var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; await userStore.CreateAsync(AdminUserToAdd, "123456"); await userStore.CreateAsync(userToAdd, "123456"); dbContext.SaveChanges(); var adminUser = await userStore.FindByEmailAsync("*****@*****.**"); var user = await userStore.FindByEmailAsync("*****@*****.**"); await userStore.AddToRoleAsync(adminUser, GlobalConstants.AdministratorRoleName); await userStore.AddToRoleAsync(user, GlobalConstants.UserRoleName); }
public ExamService(EClinicDbContext db) { this.db = db; }
public MenuService(EClinicDbContext db) { this.db = db; }
public async void CreateExamWithNoPRescriptionShoulReturnFalse() { var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); //var mockUserStore = new Mock<IUserStore<EClinicUser>>(); //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>(); //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); var userManager = MockHelpers.MockUserManager <EClinicUser>().Object; var examService = new Mock <ExamService>(dbContext).Object; var appointmentService = new Mock <AppointmentService>(dbContext).Object; var usersService = new Mock <UsersService>(dbContext, userManager, examService).Object; AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly); var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; dbContext.Users.Add(AdminUserToAdd); dbContext.Users.Add(userToAdd); dbContext.SaveChanges(); var exam = new CreateExamInputModel() { Condition = "good", DoctorUserName = "******", Diagnose = "ssdcsds", PatientUserName = "******", Prescription = "" }; bool result = await examService.CreateExam(exam); Assert.False(result); }
public async void GetUserWhitEmptyModelShoulThrowExeption() { var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); //var mockUserStore = new Mock<IUserStore<EClinicUser>>(); //var mockRoleManager = new Mock<IUserRoleStore<EClinicUser>>(); //var userManager = new UserManager<EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); var userManager = MockHelpers.MockUserManager <EClinicUser>().Object; var examService = new Mock <ExamService>(dbContext).Object; var appointmentService = new Mock <AppointmentService>(dbContext).Object; var usersService = new Mock <UsersService>(dbContext, userManager, examService).Object; AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly); var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; dbContext.Users.Add(AdminUserToAdd); dbContext.Users.Add(userToAdd); dbContext.SaveChanges(); var date = new DateTime(2019, 08, 03, 09, 00, 00); await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date); var exam = new CreateExamInputModel() { Condition = "good", DoctorUserName = "******", Diagnose = "adss", PatientUserName = "******", Prescription = "sdfsdd" }; await examService.CreateExam(exam); dbContext.Appointments.Where(x => true).ToList(); await Assert.ThrowsAsync <ArgumentException>(async() => await usersService.GetUser("")); }
public async void GetAllAppointsmentDatesForDoctorForDayShoulReturnOne() { //Arrange var options = new DbContextOptionsBuilder <EClinicDbContext>() .UseInMemoryDatabase(databaseName: "Appointment_CreateAppointment") .Options; var dbContext = new EClinicDbContext(options); var appointmentService = new Mock <AppointmentService>(dbContext).Object; AutoMapperConfig.RegisterMappings(typeof(SetingViewModel).GetTypeInfo().Assembly); var mockUserStore = new Mock <IUserStore <EClinicUser> >(); var userManager = new UserManager <EClinicUser>(mockUserStore.Object, null, null, null, null, null, null, null, null); var AdminUserToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Ivo", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "Nqkyde Tam 35", Age = 25, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; var userToAdd = new EClinicUser { Email = "*****@*****.**", FirstName = "Petyr", MiddleName = "Peshov", LastName = "Petrov", UserName = "******", NormalizedEmail = "*****@*****.**", NormalizedUserName = "******", Address = "I tuk i tam", Age = 30, SecurityStamp = Guid.NewGuid().ToString(), CreatedOn = DateTime.UtcNow, }; dbContext.Users.Add(AdminUserToAdd); dbContext.Users.Add(userToAdd); dbContext.SaveChanges(); var date = new DateTime(2019, 08, 03, 09, 00, 00); await appointmentService.CreateAppointment("*****@*****.**", "*****@*****.**", date); dbContext.Appointments.Where(x => true).ToList(); //Act var result = await appointmentService.GetAllAppointsmentDatesForDoctorForDay(userToAdd.UserName, date); var actual = dbContext.Appointments.Where(x => x.DoctorId == dbContext.Users.FirstOrDefault(d => d.Email == "*****@*****.**").Id).ToList(); //Assert Assert.Equal(actual.Count(), result.Count()); }