public async Task CreateDonationThrowNoHospitalDataerrorTest()
        {
            var dbContext = ApplicationDbContextInMemoryFactory.InitializeContext();

            var donationEventRepository = new EfDeletableEntityRepository <DonationEvent>(dbContext);
            var bloodBankRepository     = new EfDeletableEntityRepository <BloodBank>(dbContext);
            var bagRepository           = new EfDeletableEntityRepository <BloodBag>(dbContext);
            var hospitalDataRepository  = new EfDeletableEntityRepository <HospitalData>(dbContext);
            var donorDataRepository     = new EfDeletableEntityRepository <DonorData>(dbContext);
            var requestRepository       = new EfDeletableEntityRepository <Request>(dbContext);
            var usersRepository         = new EfDeletableEntityRepository <ApplicationUser>(dbContext);
            var rolesRepository         = new EfDeletableEntityRepository <ApplicationRole>(dbContext);

            var service = new DonationEventsService(
                donationEventRepository,
                bloodBankRepository,
                bagRepository,
                hospitalDataRepository,
                donorDataRepository,
                requestRepository);

            await SeedDataAsync(dbContext);

            var serviceDonor = new DonorsService(donorDataRepository, usersRepository, rolesRepository);
            var user         = usersRepository.All().FirstOrDefault();
            await serviceDonor.CreateDonorProfileAsync(this.SeedInputs(), user.Id);

            var donorData = donorDataRepository.All().FirstOrDefault(dd => dd.ApplicationUserId == user.Id);

            await Assert.ThrowsAsync <ArgumentException>(() => service.CreateDonation("111", donorData.ApplicationUserId, 500, 0, BloodGroup.A, RhesusFactor.Negative));
        }
예제 #2
0
        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));
        }
예제 #3
0
        public async Task CreateDonorThrowsExceptionUserShouldBeRegisteredFirstTest()
        {
            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);

            await Assert.ThrowsAsync <ArgumentException>(() => service.CreateDonorProfileAsync(this.SeedInputs()[0], this.SeedInputs()[0].Id));
        }
예제 #4
0
        public async Task CreateDonorUserIsNotNullTest()
        {
            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);

            await SeedDataAsync(dbContext);

            await service.CreateDonorProfileAsync(this.SeedInputs()[0], this.SeedInputs()[0].Id);

            var user = usersRepository.All().Where(u => u.UserName == "User1").FirstOrDefault();

            Assert.NotNull(user);
        }
예제 #5
0
        public async Task GetAllDonorsTest()
        {
            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);

            await SeedDataAsync(dbContext);

            await service.CreateDonorProfileAsync(this.SeedInputs()[0], this.SeedInputs()[0].Id);

            var donors = donorDataRepository.All().Count();

            Assert.Equal(1, donors);
        }
예제 #6
0
        public async Task CreateDonorIsInCorrectRoleTest()
        {
            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);

            await SeedDataAsync(dbContext);

            await service.CreateDonorProfileAsync(this.SeedInputs()[0], this.SeedInputs()[0].Id);

            var user = usersRepository.All().Where(u => u.UserName == "User1").FirstOrDefault();

            var isInRole = await userManager.Object.IsInRoleAsync(user, GlobalConstants.DonorRoleName);

            Assert.True(isInRole);
        }