示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#4
0
        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();
        }
示例#5
0
        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);
        }