Example #1
0
        public async Task UpdateFacility_State_Succeeds()
        {
            const string newState   = "Alabama";
            var          facilityId = RepositoryData.Facilities()[0].Id;

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetFacilityRepository();
            var facility = ResourceHelper.GetFacilityDetail(facilityId);
            var updates  = new FacilityEditDto(facility)
            {
                State = newState
            };

            await repository.UpdateFacilityAsync(facilityId, updates);

            repositoryHelper.ClearChangeTracker();

            var expected = ResourceHelper.GetFacilityDetail(facilityId);

            expected.State = newState;

            var updatedFacility = await repository.GetFacilityAsync(facilityId);

            updatedFacility.Should().BeEquivalentTo(expected);
        }
Example #2
0
        public async Task <IActionResult> OnGetAsync(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var facilityDetail = await _repository.GetFacilityAsync(id.Value);

            if (facilityDetail == null)
            {
                return(NotFound());
            }

            if (!facilityDetail.Active)
            {
                return(RedirectToPage("./Details", new { id }));
            }

            Id       = id.Value;
            Facility = new FacilityEditDto(facilityDetail);

            await PopulateSelectsAsync();

            return(Page());
        }
Example #3
0
        public async Task UpdateFacility_InvalidCounty_ThrowsException()
        {
            var updates = new FacilityEditDto()
            {
                CountyId = 999, FacilityNumber = "zzz"
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetFacilityRepository();
                await repository.UpdateFacilityAsync(Guid.Empty, updates);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage($"County ID {updates.CountyId} does not exist.");
        }
Example #4
0
        public async Task UpdateFacility_NonexistentId_ThrowsException()
        {
            var updates = new FacilityEditDto()
            {
                CountyId = 99, FacilityNumber = "zzz"
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetFacilityRepository();
                await repository.UpdateFacilityAsync(Guid.Empty, updates);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("Facility ID not found. (Parameter 'id')");
        }
Example #5
0
        public async Task UpdateFacility_MissingFacilityNumber_ThrowsException()
        {
            var updates = new FacilityEditDto()
            {
                CountyId = 99
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetFacilityRepository();
                await repository.UpdateFacilityAsync(Guid.Empty, updates);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("Facility Number is required.");
        }
Example #6
0
        public async Task UpdateFacility_WithNonexistentFile_ThrowsException()
        {
            const string newFileLabel = "999-9999";

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetFacilityRepository();

                var facilityId = RepositoryData.Facilities()[0].Id;
                var facility   = ResourceHelper.GetFacilityDetail(facilityId);
                var updates    = new FacilityEditDto(facility)
                {
                    FileLabel = newFileLabel
                };

                await repository.UpdateFacilityAsync(facilityId, updates);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage($"File Label {newFileLabel} does not exist.");
        }
Example #7
0
        public async Task UpdateFacility_WithBlankFile_SucceedsAndCreatesNewFile()
        {
            var facilityId = RepositoryData.Facilities()[0].Id;

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetFacilityRepository();
            var facility = ResourceHelper.GetFacilityDetail(facilityId);
            var updates  = new FacilityEditDto(facility)
            {
                FileLabel = ""
            };

            await repository.UpdateFacilityAsync(facilityId, updates);

            repositoryHelper.ClearChangeTracker();

            var updatedFacility = await repository.GetFacilityAsync(facilityId);

            updatedFacility.FileLabel.ShouldNotBeNull();
            updatedFacility.FileLabel.Should().StartWith(RepositoryData.Facilities()[0].CountyId.ToString());
        }
Example #8
0
        public async Task UpdateFacility_Longitude_Succeeds()
        {
            const decimal newLongitude = 1.0m;
            var           facilityId   = RepositoryData.Facilities()[0].Id;

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetFacilityRepository();
            var facility = ResourceHelper.GetFacilityDetail(facilityId);
            var updates  = new FacilityEditDto(facility)
            {
                Longitude = newLongitude
            };

            await repository.UpdateFacilityAsync(facilityId, updates);

            repositoryHelper.ClearChangeTracker();

            var updatedFacility = await repository.GetFacilityAsync(facilityId);

            updatedFacility.Longitude.Should().Be(newLongitude);
        }
Example #9
0
        public async Task UpdateFacility_ChangeFile_Succeeds()
        {
            var facilityId = RepositoryData.Facilities()[0].Id;
            var newFile    = RepositoryData.Files[1];

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetFacilityRepository();
            var facility = ResourceHelper.GetFacilityDetail(facilityId);
            var updates  = new FacilityEditDto(facility)
            {
                FileLabel = newFile.FileLabel
            };

            await repository.UpdateFacilityAsync(facilityId, updates);

            repositoryHelper.ClearChangeTracker();

            var updatedFacility = await repository.GetFacilityAsync(facilityId);

            updatedFacility.FileLabel.Should().Be(newFile.FileLabel);
            updatedFacility.FileId.Should().Be(newFile.Id);
        }
Example #10
0
        public async Task UpdateFacility_County_Succeeds()
        {
            const int newCountyId = 99;
            var       facilityId  = RepositoryData.Facilities()[0].Id;

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetFacilityRepository();
            var facility = ResourceHelper.GetFacilityDetail(facilityId);
            var updates  = new FacilityEditDto(facility)
            {
                CountyId = newCountyId
            };
            await repository.UpdateFacilityAsync(facilityId, updates);

            repositoryHelper.ClearChangeTracker();

            var expected = ResourceHelper.GetFacilityDetail(facilityId);

            expected.County = ResourceHelper.GetCounty(newCountyId);

            var updatedFacility = await repository.GetFacilityAsync(facilityId);

            updatedFacility.Should().BeEquivalentTo(expected);
        }