public async Task CreateDonorThrowsExceptionIfNoFullDonorDataTest() { var dbContext = ApplicationDbContextInMemoryFactory.InitializeContext(); var donorDataRepository = new EfDeletableEntityRepository <DonorData>(dbContext); var usersRepository = new EfDeletableEntityRepository <ApplicationUser>(dbContext); var rolesRepository = new EfDeletableEntityRepository <ApplicationRole>(dbContext); var userManager = this.GetUserManagerMock(); var service = new DonorsService(donorDataRepository, usersRepository, rolesRepository); var input = new DonorDataProfileInputModel { Id = "123", UserName = "******", FirstName = null, MiddleName = "MiddleName", LastName = null, Age = 30, PhoneNumber = "123456789", BloodGroup = (BloodGroup)1, RhesusFactor = (RhesusFactor)1, Country = "Bulgaria", City = "Sofia", AdressDescription = "Sofia", DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible, ExaminationDate = DateTime.UtcNow, DiseaseName = "None", }; await Assert.ThrowsAsync <ArgumentException>(() => service.CreateDonorProfileAsync(input, this.SeedInputs()[0].Id)); }
public async Task CreateDonorProfileAsync(DonorDataProfileInputModel input, string userId) { var user = this.userRepository.All() .Where(u => u.Id == userId) .FirstOrDefault(); if (user == null) { throw new ArgumentException(GlobalConstants.NoUserRegistrationErrorMessage); } if (input.Age == 0 || input.FirstName == null || input.LastName == null) { throw new ArgumentException(GlobalConstants.NoDonorDataErrorMessage); } var donorData = new DonorData { ApplicationUserId = user.Id, FirstName = input.FirstName, MiddleName = input.MiddleName, LastName = input.LastName, Age = input.Age, Contact = new Contact { Phone = input.PhoneNumber, Email = user.Email, }, Location = new Location { Country = input.Country, City = input.City, AdressDescription = input.AdressDescription, }, Examination = new Examination { Disease = new Disease { DiseaseStatus = input.DiseaseStatus, DiseaseName = input.DiseaseName, DiseaseDescription = input.DiseaseDescription, }, }, DonorAveilableStatus = input.DonorAveilableStatus, BloodGroup = input.BloodGroup, RhesusFactor = input.RhesusFactor, }; await this.donorRepository.AddAsync(donorData); await this.donorRepository.SaveChangesAsync(); }
public async Task <IActionResult> AddDonor(DonorDataProfileInputModel input) { if (!this.ModelState.IsValid) { return(this.View(input)); } var userId = this.userManager.GetUserId(this.User); await this.donorsService.CreateDonorProfileAsync(input, userId); return(this.RedirectToAction("AllRequests", "Requests")); }
private IList <DonorDataProfileInputModel> SeedInputs() { var inputs = new List <DonorDataProfileInputModel>(); // Seeding input of donorData var input = new DonorDataProfileInputModel { Id = "123", UserName = "******", FirstName = "FirstName", MiddleName = "MiddleName", LastName = "LastName", Age = 30, PhoneNumber = "123456789", BloodGroup = (BloodGroup)1, RhesusFactor = (RhesusFactor)1, Country = "Bulgaria", City = "Sofia", AdressDescription = "Sofia", DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible, ExaminationDate = DateTime.UtcNow, DiseaseName = "None", }; inputs.Add(input); for (int i = 0; i < 5; i++) { var inputLoop = new DonorDataProfileInputModel { Id = $"123{i}", UserName = $"User1{i}", FirstName = $"FirstName{i}", MiddleName = $"MiddleName{i}", LastName = $"LastName{i}", Age = 30, PhoneNumber = $"123456789{i}", BloodGroup = (BloodGroup)1, RhesusFactor = (RhesusFactor)1, Country = "Bulgaria", City = "Sofia", AdressDescription = "Sofia", DonorAveilableStatus = EmergencyStatus.WithinDay, ExaminationDate = DateTime.UtcNow, DiseaseName = "None", }; inputs.Add(inputLoop); } return(inputs); }
public void AddDonorHttpPostInvalidInputShouldThrowAnyExceptionTest() { var mockUserManagerService = this.GetUserManagerMock(); var mockDonorsService = new Mock <IDonorsService>(); var mockUsersService = new Mock <IUsersService>(); var input = new DonorDataProfileInputModel(); var controller = new DonorsController( mockUserManagerService.Object, mockDonorsService.Object, mockUsersService.Object); Assert.ThrowsAnyAsync <Exception>(() => controller.AddDonor(input)); }
private DonorDataProfileInputModel SeedData() { var input = new DonorDataProfileInputModel { Id = "123", FirstName = "Donor1", MiddleName = "Donor1", LastName = "Donor1", Age = 30, PhoneNumber = "123456789", BloodGroup = BloodGroup.A, RhesusFactor = RhesusFactor.Negative, Country = "Bulgaria", City = "Sofia", AdressDescription = "Sofia", DonorAveilableStatus = EmergencyStatus.WithinDay, ExaminationDate = DateTime.UtcNow, DiseaseName = "none", }; return(input); }
private DonorDataProfileInputModel SeedInputs() { // Seeding input of donorData var input = new DonorDataProfileInputModel { Id = "123456", UserName = "******", FirstName = "FirstName", MiddleName = "MiddleName", LastName = "LastName", Age = 30, PhoneNumber = "123456789", BloodGroup = (BloodGroup)1, RhesusFactor = (RhesusFactor)1, Country = "Bulgaria", City = "Sofia", AdressDescription = "Sofia", DonorAveilableStatus = EmergencyStatus.AsSoonAsPossible, ExaminationDate = DateTime.UtcNow, DiseaseName = "None", }; return(input); }