예제 #1
0
        public async Task PostAsync_Test()
        {
            //Arrange
            var group       = Fixture.Create <Models.Group>();
            var mappedGroup = new Group {
                Id = group.Id, Name = group.Name
            };

            Mapper.Map <Group>(Arg.Any <Models.Group>()).ReturnsForAnyArgs(mappedGroup);

            Container.CreateItemAsync(Arg.Is(mappedGroup), Arg.Any <PartitionKey>())
            .Returns(CreateItemResponse(HttpStatusCode.OK, mappedGroup));

            Mapper.Map <Models.Group>(Arg.Any <Group>()).Returns(group);

            //Act
            var result = await _sut.PostAsync(ApplicationId, group).ConfigureAwait(false);

            //Assert
            result.Should().NotBeNull();
            result.Should().BeOfType <OkObjectResult>();
            var ok = result as OkObjectResult;

            ok.Should().NotBeNull();
            var groupResult = ok.Value as Models.Group;

            groupResult.Should().NotBeNull();

            await Container.Received(1)
            .ReadItemAsync <Application>(Arg.Is(ApplicationId), Arg.Any <PartitionKey>())
            .ConfigureAwait(false);

            await Container.Received(1)
            .CreateItemAsync(Arg.Is(mappedGroup), Arg.Any <PartitionKey>())
            .ConfigureAwait(false);

            Mapper.Received(1).Map <Group>(Arg.Any <Models.Group>());
        }