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); }
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."); }
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."); }
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')"); }
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."); }
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')"); }
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."); }
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); }
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); }