예제 #1
0
        public void Sample_WhenCreatingInvalidSampleData_ThenExceptionIsThrown(string url)
        {
            // given
            var command = new AddSampleCommand {
                Name = "test"
            };

            // when then
            Should.Throw <DomainException>(() => Client.PostAsync(url, command)).Message.ShouldContain("is not allowed");
        }
        public async Task <ActionResult <SampleDto> > AddSample([FromBody] SampleForCreationDto sampleForCreation)
        {
            // add error handling
            var command         = new AddSampleCommand(sampleForCreation);
            var commandResponse = await _mediator.Send(command);

            var response = new Response <SampleDto>(commandResponse);

            return(CreatedAtRoute("GetSample",
                                  new { commandResponse.SampleId },
                                  response));
        }
예제 #3
0
        public async Task Sample_WhenCreatingDuplicatedSampleData_ThenExceptionIsThrown(string url)
        {
            // given
            var command1 = new AddSampleCommand {
                Name = "Ble"
            };
            var command2 = new AddSampleCommand {
                Name = "Ble"
            };

            // when
            var httpResponse1 = await Client.PostAsync(url, command1);

            httpResponse1.EnsureSuccessStatusCode();

            // then
            Should.Throw <DomainException>(() => Client.PostAsync(url, command2)).Message.ShouldContain("already exist");
        }
        public async Task AddSampleCommand_Adds_New_Sample_To_Db()
        {
            // Arrange
            var fakeSampleOne = new FakeSampleForCreationDto {
            }.Generate();

            // Act
            var command        = new AddSampleCommand(fakeSampleOne);
            var sampleReturned = await SendAsync(command);

            var sampleCreated = await ExecuteDbContextAsync(db => db.Samples.SingleOrDefaultAsync());

            // Assert
            sampleReturned.Should().BeEquivalentTo(fakeSampleOne, options =>
                                                   options.ExcludingMissingMembers());
            sampleCreated.Should().BeEquivalentTo(fakeSampleOne, options =>
                                                  options.ExcludingMissingMembers());
        }
예제 #5
0
        public async Task Sample_WhenCreatingSampleData_ThenIsAddedToDatabase(string url)
        {
            // given
            var command = new AddSampleCommand {
                Name = "Ble"
            };

            // when
            var httpResponse = await Client.PostAsync(url, command);

            // then
            httpResponse.EnsureSuccessStatusCode();

            GetContext(dbContext =>
            {
                var result = dbContext.Samples.First(x => x.Name == "Ble");
                result.CreatedBy.ShouldBe("1a2b3c");
                result.CreatedOn.ShouldBe(DateTime.Now, TimeSpan.FromSeconds(1));
                result.UpdatedBy.ShouldBeNull();
                result.UpdatedOn.ShouldBeNull();
            });
        }
예제 #6
0
        public async Task <IActionResult> AddSamples([FromBody] AddSampleCommand command)
        {
            await _commandDispatcher.Dispatch(command);

            return(Ok());
        }