public async Task Create_ValidRequest_ReturnsJsonResponseAndCreated(string name, CompanyTypes companyType)
        {
            #region Arrange
            await DeleteDbContent();

            var client = GetHttpClient();

            var newCompany = new AdminCompanyModel
            {
                Name = name,
                Type = companyType
            };

            var expectedCompany = new CompanyModel
            {
                ID   = 1,
                Name = name,
                Type = companyType.ToString()
            };
            #endregion

            #region Act
            var response = await client.PostAsJsonAsync("/api/company", newCompany);

            var responseBody = await response.Content.ReadAsStreamAsync();

            var actualCompany = await JsonSerializer.DeserializeAsync <CompanyModel>(responseBody);

            #endregion

            #region Assert
            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal(expectedCompany.ID, actualCompany.ID);
            Assert.Equal(expectedCompany.Name, actualCompany.Name);
            Assert.Equal(expectedCompany.Type, actualCompany.Type);
            #endregion
        }
        public async Task Update_InvalidRequest_ReturnsJsonResponseAndNotFound(int id)
        {
            #region Arrange
            await DeleteDbContent();

            var client = GetHttpClient();

            var newCompany = new AdminCompanyModel
            {
                ID   = id,
                Name = "New Name",
                Type = CompanyTypes.Producer
            };
            #endregion

            #region Act
            var response = await client.PutAsJsonAsync($"/api/company/{id}", newCompany);

            #endregion

            #region Assert
            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
            #endregion
        }