public async Task ShouldGetCorruptedBlocksIfNoneOfThemWereNotUploaded() { // Arrange var fixture = new TestFixture <CompleteUploadSessionCommandHandler>(); var command = new CompleteUploadSessionCommand("123"); var session = fixture.Build <UploadSession>() .With(x => x.Parts, new[] { fixture.Build <UploadPart>().With(x => x.Id, "1").With(x => x.SizeInBytes, 10).With(x => x.Offset, 0).Create() }) .With(x => x.Id, "123") .With(x => x.Extension, FileExtension.Txt.ToString()) .Create(); var expectedPart = new CorruptedPart { ActualSizeInBytes = 0, ExpectedSizeInBytes = 10, Offset = 0, Id = "1" }; fixture.Freeze <ISessionsRepository>().FindNotCompletedSessionAsync(command.UploadId, CancellationToken.None) .Returns(session); // Act var result = await fixture.Sut.Handle(command, CancellationToken.None); // Assert result.Should().NotBeNull(); result.CorruptedParts.Should().BeEquivalentTo(expectedPart); }
public async Task ShouldCompleteSessionIfAllBlocksAreUploaded() { // Arrange var fixture = new TestFixture <CompleteUploadSessionCommandHandler>(); var command = new CompleteUploadSessionCommand("123"); var session = fixture.Build <UploadSession>() .With(x => x.Parts, new[] { fixture.Build <UploadPart>().With(x => x.Id, "1").With(x => x.SizeInBytes, 10).Create(), fixture.Build <UploadPart>().With(x => x.Id, "2").With(x => x.SizeInBytes, 20).Create() }) .With(x => x.Id, "123") .With(x => x.Extension, FileExtension.Txt.ToString()) .Create(); fixture.Freeze <ISessionsRepository>().FindNotCompletedSessionAsync(command.UploadId, CancellationToken.None) .Returns(session); var blockList = new[] { new BlockInfo("1", 10), new BlockInfo("2", 20) }; fixture.Freeze <IBlobStorage>().GetBlockListAsync("123", CancellationToken.None) .Returns(blockList); // Act var result = await fixture.Sut.Handle(command, CancellationToken.None); // Assert result.Should().NotBeNull(); result.CorruptedParts.Should().BeEmpty(); }
public async Task PutAsync_Should_Update_Existing_Container() { // Arrange var existingItem = TestFixture.Create <BeerContainer>(); var updateRequest = TestFixture.Build <UpdateBeerContainer>() .With(_ => _.BeerContainerId, existingItem.BeerContainerId) .Create(); await Context.BeerContainers.AddAsync(existingItem); await Context.SaveChangesAsync(); // Act var result = await _controller.PutAsync(updateRequest); // Assert result.Should() .NotBeNull(); result.Should() .BeOfType <OkObjectResult>(); var okResult = result as OkObjectResult; var updatedContainer = okResult.Value as BeerContainer; updatedContainer.ContainerType .Should() .Be(updatedContainer.ContainerType); var dbItem = await Context.BeerContainers.FindAsync(updateRequest.BeerContainerId); dbItem.ContainerType .Should() .Be(updatedContainer.ContainerType); }
public async Task Put_Should_Update_Existing_Item() { // Arrange var updateRequest = TestFixture.Create <UpdateCellarItem>(); var itemToUpdate = TestFixture.Build <CellarItem>() .With(_ => _.CellarItemId, updateRequest.CellarItemId) .With(_ => _.BeerStyleId, updateRequest.BeerStyleId) .With(_ => _.BeerContainerId, updateRequest.BeerContainerId) .Create(); var style = TestFixture.Build <BeerStyle>() .With(_ => _.StyleId, updateRequest.BeerStyleId) .Create(); var container = TestFixture.Build <BeerContainer>() .With(_ => _.BeerContainerId, updateRequest.BeerContainerId) .Create(); await Context.BeerStyles.AddAsync(style); await Context.BeerContainers.AddAsync(container); await Context.CellarItems.AddAsync(itemToUpdate); await Context.SaveChangesAsync(); // Act var result = await _controller.Put(updateRequest); // Assert result.Should() .NotBeNull(); result.Should() .BeOfType <OkObjectResult>(); var updatedItem = ((result as OkObjectResult).Value as CellarItem); updatedItem.Should() .NotBeNull(); updatedItem.CellarItemId .Should() .Be(updateRequest.CellarItemId); updatedItem.ItemName .Should(); }
public async Task PutAsync_Should_Update_Existing_Item() { // Arrange var updateRequest = TestFixture.Create <UpdateBeerStyle>(); var itemToUpdate = TestFixture.Build <BeerStyle>() .With(_ => _.StyleId, updateRequest.StyleId) .Create(); await Context.BeerStyles.AddAsync(itemToUpdate); await Context.SaveChangesAsync(); // Act var result = await _controller.PutAsync(updateRequest); // Assert result.Should() .NotBeNull(); result.Should() .BeOfType <OkObjectResult>(); var returnedItem = ((result as OkObjectResult).Value as BeerStyle); returnedItem.Should() .NotBeNull(); returnedItem.StyleId .Should() .Be(updateRequest.StyleId); returnedItem.StyleName .Should() .Be(updateRequest.StyleName); var dbItem = await Context.BeerStyles.FindAsync(updateRequest.StyleId); dbItem.Should() .NotBeNull(); dbItem.StyleName .Should() .Be(updateRequest.StyleName); }