public async Task CreateCompany_ValidRequest_ShouldReturnExpectedCompany()
        {
            // Arrange
            var createCompanyRequest = new CreateCompanyRequest(Guid.NewGuid().ToString());

            var expectedCompany = new CreateCompanyResponse
            {
                Name = createCompanyRequest.Name,
            };

            var expectedResponseContent = new StringContent(JsonConvert.SerializeObject(expectedCompany, this.fixture.JsonSerializerSettings));

            var expectedResponse = new HttpResponseMessage
            {
                Content = expectedResponseContent,
            };

            var companyApi = this.fixture.GetCompanyApi(expectedResponse);

            var createCompanyResponse = default(CreateCompanyResponse);

            // Act
            Func <Task> act = async() => createCompanyResponse = await companyApi.CreateCompanyAsync(createCompanyRequest);

            // Assert
            await act.Should().NotThrowAsync();

            createCompanyResponse.Should().BeEquivalentTo(expectedCompany);
        }
        public Task Handle(CreateCompanyRequest message, IMessageHandlerContext context)
        {
            log.Info("Received CreateCompanyRequest");

            using (var unitOfWork = new CarUnitOfWork(new CarApiContext(_dbContextOptionsBuilder.Options)))
            {
                unitOfWork.Companies.Add(message.Company);
                unitOfWork.Complete();
            }

            var response = new CreateCompanyResponse()
            {
                Company = message.Company
            };

            var reply = context.Reply(response);

            return(reply);
        }