public async Task Should_return_updated_employee_when_update_existing_employee() { var company = new Company("comp1"); string companyRequest = JsonConvert.SerializeObject(company); StringContent companyRequestBody = new StringContent(companyRequest, Encoding.UTF8, "application/json"); await client.PostAsync($"/companies", companyRequestBody); var employee = new Employee("employ1", 100); string employeeRequest = JsonConvert.SerializeObject(employee); StringContent employeeRequestBody = new StringContent(employeeRequest, Encoding.UTF8, "application/json"); await client.PostAsync($"/companies/{company.Id}/employees", employeeRequestBody); var employeeToUpsert = new EmployeeToUpsert("employ2", 200); string newEmployeeRequest = JsonConvert.SerializeObject(employeeToUpsert); StringContent newEmployeeRequestBody = new StringContent(newEmployeeRequest, Encoding.UTF8, "application/json"); var response = await client.PatchAsync($"/companies/{company.Id}/employees/{employee.Id}", newEmployeeRequestBody); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); var actualEmployee = JsonConvert.DeserializeObject <Employee>(responseString); Assert.Equal(employee.Id, actualEmployee.Id); Assert.Equal(employeeToUpsert.Name, actualEmployee.Name); Assert.Equal(employeeToUpsert.Salary, actualEmployee.Salary); }
public async Task <ActionResult <Employee> > GetAllEmployeesAsync(string companyId, string employeeId, EmployeeToUpsert employeeToUpsert) { var company = companies.FirstOrDefault(comp => comp.Id == companyId); if (company == null) { return(NotFound()); } var employee = company.Employees.FirstOrDefault(employee => employee.Id == employeeId); if (employee == null) { return(NotFound()); } employee.Name = employeeToUpsert.Name; employee.Salary = employeeToUpsert.Salary; return(Ok(employee)); }