Пример #1
0
        public async Task OnPost_ValidModel_ReturnsDetailsPage()
        {
            var mockRepo = new Mock <ICabinetRepository>();

            mockRepo.Setup(l => l.CabinetNameExistsAsync(It.IsAny <string>(), It.IsAny <Guid?>()))
            .ReturnsAsync(false);
            mockRepo.Setup(l => l.CreateCabinetAsync(It.IsAny <CabinetEditDto>()));

            var newCabinet = new CabinetEditDto()
            {
                Name           = "New Cabinet",
                FirstFileLabel = "999-9999",
            };

            var pageModel = new AddModel(mockRepo.Object)
            {
                NewCabinet = newCabinet
            };

            var result = await pageModel.OnPostAsync().ConfigureAwait(false);

            result.Should().BeOfType <RedirectToPageResult>();
            pageModel.ModelState.IsValid.ShouldBeTrue();
            ((RedirectToPageResult)result).PageName.Should().Be("./Details");
            ((RedirectToPageResult)result).RouteValues["id"].Should().Be(newCabinet.Name);
        }
Пример #2
0
        public async Task UpdateNonexistentCabinet_ThrowsException()
        {
            var cabinetEdit = new CabinetEditDto()
            {
                Name           = "C",
                FirstFileLabel = "000-0000",
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.UpdateCabinetAsync(Guid.Empty, cabinetEdit);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("Cabinet ID not found.");
        }
Пример #3
0
        public async Task CreateCabinet_WithInvalidLabel_ThrowsException()
        {
            var newCabinet = new CabinetEditDto
            {
                Name           = "New",
                FirstFileLabel = "00-00",
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.CreateCabinetAsync(newCabinet);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("The File Label is invalid.");
        }
Пример #4
0
        public async Task CreateCabinet_WithNullLabel_ThrowsException()
        {
            var newCabinet = new CabinetEditDto
            {
                Name           = "C",
                FirstFileLabel = null,
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.CreateCabinetAsync(newCabinet);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("Value cannot be null. (Parameter 'FirstFileLabel')");
        }
Пример #5
0
        public async Task UpdateCabinet_WithInvalidFileLabel_ThrowsException()
        {
            var cabinet     = RepositoryData.Cabinets[0];
            var cabinetEdit = new CabinetEditDto()
            {
                Name           = cabinet.Name,
                FirstFileLabel = "00-00",
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.UpdateCabinetAsync(cabinet.Id, cabinetEdit);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("The File Label is invalid.");
        }
Пример #6
0
        public async Task UpdateCabinet_WithNullName_ThrowsException()
        {
            var cabinet     = RepositoryData.Cabinets[0];
            var cabinetEdit = new CabinetEditDto()
            {
                Name           = null,
                FirstFileLabel = "000-0000",
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.UpdateCabinetAsync(cabinet.Id, cabinetEdit);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage("Value cannot be null. (Parameter 'Name')");
        }
Пример #7
0
        public async Task UpdateCabinet_WithExistingName_ThrowsException()
        {
            var cabinet      = RepositoryData.Cabinets[0];
            var existingName = RepositoryData.Cabinets[1].Name;
            var cabinetEdit  = new CabinetEditDto()
            {
                Name           = existingName,
                FirstFileLabel = cabinet.FirstFileLabel,
            };

            Func <Task> action = async() =>
            {
                using var repository = CreateRepositoryHelper().GetCabinetRepository();
                await repository.UpdateCabinetAsync(cabinet.Id, cabinetEdit);
            };

            (await action.Should().ThrowAsync <ArgumentException>().ConfigureAwait(false))
            .WithMessage($"Cabinet Name {existingName} already exists.");
        }
Пример #8
0
        public async Task CreateCabinet_Succeeds()
        {
            var newCabinet = new CabinetEditDto
            {
                Name           = "New Cabinet",
                FirstFileLabel = "000-0000",
            };

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetCabinetRepository();

            await repository.CreateCabinetAsync(newCabinet);

            repositoryHelper.ClearChangeTracker();

            var cabinet = await repository.GetCabinetSummaryAsync(newCabinet.Name);

            cabinet.Active.ShouldBeTrue();
            cabinet.Name.Should().Be(newCabinet.Name);
            cabinet.FirstFileLabel.Should().Be(newCabinet.FirstFileLabel);
        }
Пример #9
0
        public async Task UpdateCabinet_WithNoChanges_Succeeds()
        {
            var cabinet = RepositoryData.Cabinets[0];

            var cabinetEdit = new CabinetEditDto()
            {
                Name           = cabinet.Name,
                FirstFileLabel = cabinet.FirstFileLabel,
            };

            using var repositoryHelper = CreateRepositoryHelper();
            using var repository       = repositoryHelper.GetCabinetRepository();
            await repository.UpdateCabinetAsync(cabinet.Id, cabinetEdit);

            repositoryHelper.ClearChangeTracker();

            var updatedCabinet = await repository.GetCabinetSummaryAsync(cabinet.Name);

            updatedCabinet.Name.Should().Be(cabinetEdit.Name);
            updatedCabinet.FirstFileLabel.Should().Be(cabinetEdit.FirstFileLabel);
            updatedCabinet.Active.Should().Be(cabinet.Active);
        }