public async Task Should_Update_Employee_Information_Given_Company_ID_And_Employee_ID_When_Patch() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var employee = new EmployeeDto("employee1", 1300); var requestBodyPost = Serialize <EmployeeDto>(employee); var responsePost = await client.PostAsync($"/Companies/{existedCompany.CompanyID}/Employees", requestBodyPost); var expectedEmployee = await DeserializeResponseAsync <Employee>(responsePost); var updatedEmployee = new EmployeeDto("employeeUpdated", 5000); var requestBodyPatch = Serialize <EmployeeDto>(updatedEmployee); // when var responsePatch = await client.PatchAsync($"/Companies/{existedCompany.CompanyID}/Employees/{expectedEmployee.EmployeeID}", requestBodyPatch); // then Assert.Equal(HttpStatusCode.OK, responsePatch.StatusCode); var actualEmployee = await DeserializeResponseAsync <Employee>(responsePatch); expectedEmployee.Name = updatedEmployee.Name; expectedEmployee.Salary = updatedEmployee.Salary.Value; Assert.Equal(expectedEmployee, actualEmployee); }
public async Task Should_Return_Not_Found_Given_Not_Existed_Employee_ID_When_Patch() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var employee = new EmployeeDto("employee1", 1300); var requestBodyPost = Serialize <EmployeeDto>(employee); var responsePost = await client.PostAsync($"/Companies/{existedCompany.CompanyID}/Employees", requestBodyPost); var expectedEmployee = await DeserializeResponseAsync <Employee>(responsePost); var updatedEmployee = new EmployeeDto("employeeUpdated", 5000); var requestBodyPatch = Serialize <EmployeeDto>(updatedEmployee); // when var responsePatch = await client.PatchAsync($"/Companies/{existedCompany.CompanyID}/Employees/notexisted", requestBodyPatch); // then Assert.Equal(HttpStatusCode.NotFound, responsePatch.StatusCode); }
public async Task Should_Return_Updated_Company_Given_Existed_Company_Id_And_Updated_Information_When_Patch() { //given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var uri = "/Companies"; var postResponse = await client.PostAsync(uri, requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var updatedCompany = new CompanyDto("companyUpdated"); var requestBodyPatch = Serialize(updatedCompany); // when var response = await client.PatchAsync($"/Companies/{existedCompany.CompanyID}", requestBodyPatch); // then Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actualCompany = await DeserializeResponseAsync <Company>(response); var responseGet = await client.GetAsync($"/Companies/{existedCompany.CompanyID}"); var actualCompanyFromDatabase = await DeserializeResponseAsync <Company>(responseGet); existedCompany.Name = "companyUpdated"; Assert.Equal(existedCompany, actualCompany); Assert.Equal(existedCompany, actualCompanyFromDatabase); }
public async Task Should_Return_Company_List_On_Page_Index_Given_Page_Size_And_Page_Index_When_Get() { //given FakeDatabase.ClearCompanies(); var company1 = new CompanyDto("company1"); var company2 = new CompanyDto("company2"); var company3 = new CompanyDto("company3"); var requestBody1 = Serialize(company1); var requestBody2 = Serialize(company2); var requestBody3 = Serialize(company3); var uri = "/Companies"; await client.PostAsync(uri, requestBody1); await client.PostAsync(uri, requestBody2); var expectedResponse = await client.PostAsync(uri, requestBody3); var expectedCompany = await DeserializeResponseAsync <Company>(expectedResponse); // when var response = await client.GetAsync("/Companies?pageSize=2&pageIndex=2"); // then Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actualCompany = await DeserializeResponseAsync <IList <Company> >(response); Assert.Equal(new List <Company>() { expectedCompany }, actualCompany); }
public async Task Should_Return_Not_Found_Given_Not_Existed_Company_ID_When_Get() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); await DeserializeResponseAsync <Company>(postResponse); // when var response = await client.GetAsync($"/Companies/notexisted/Employees"); // then Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task Should_Return_All_Company_List_When_Get() { //given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var uri = "/Companies"; await client.PostAsync(uri, requestBody); // when var response = await client.GetAsync(uri); // then Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actualCompany = await DeserializeResponseAsync <IList <Company> >(response); Assert.Equal(FakeDatabase.Companies, actualCompany); }
public async Task Should_Return_Ok_And_Company_Given_Existed_Company_Id_When_Get_By_ID() { //given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var uri = "/Companies"; var postResponse = await client.PostAsync(uri, requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); // when var response = await client.GetAsync($"/Companies/{existedCompany.CompanyID}"); // then Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actualCompany = await DeserializeResponseAsync <Company>(response); Assert.Equal(existedCompany, actualCompany); }
public async Task Should_Return_Not_Found_Given_Not_Existed_Company_Id_And_Updated_Information_When_Patch() { //given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var uri = "/Companies"; var postResponse = await client.PostAsync(uri, requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var updatedCompany = new CompanyDto("companyUpdated"); var requestBodyPatch = Serialize(updatedCompany); // when var response = await client.PatchAsync($"/Companies/NOTFOUND", requestBodyPatch); // then Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task Should_Delete_The_Company_And_Its_Employees_Given_Company_ID_When_Delete() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var employee = new EmployeeDto("employee1", 1300); var requestBodyPost = Serialize <EmployeeDto>(employee); await client.PostAsync($"/Companies/{existedCompany.CompanyID}/Employees", requestBodyPost); // when var responseDelete = await client.DeleteAsync($"/Companies/{existedCompany.CompanyID}"); // then Assert.Equal(HttpStatusCode.NoContent, responseDelete.StatusCode); Assert.Empty(FakeDatabase.Companies); }
public async Task Should_Get_All_Employee_Given_Company_ID_When_Get() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var employee = new EmployeeDto("employee1", 1300); var requestBodyPost = Serialize <EmployeeDto>(employee); await client.PostAsync($"/Companies/{existedCompany.CompanyID}/Employees", requestBodyPost); // when var response = await client.GetAsync($"/Companies/{existedCompany.CompanyID}/Employees"); // then Assert.Equal(HttpStatusCode.OK, response.StatusCode); var actualEmployee = await DeserializeResponseAsync <IList <Employee> >(response); Assert.Equal(FakeDatabase.GetCompanyByID(existedCompany.CompanyID).Employees, actualEmployee); }
public async Task Should_Add_Employee_Given_Company_ID_And_Employee_When_Post() { // given FakeDatabase.ClearCompanies(); var company = new CompanyDto("company1"); var requestBody = Serialize(company); var postResponse = await client.PostAsync("/Companies", requestBody); var existedCompany = await DeserializeResponseAsync <Company>(postResponse); var employee = new EmployeeDto("employee1", 1300); var requestBodyPost = Serialize <EmployeeDto>(employee); // when var response = await client.PostAsync($"/Companies/{existedCompany.CompanyID}/Employees", requestBodyPost); // then Assert.Equal(HttpStatusCode.Created, response.StatusCode); var actualEmployee = await DeserializeResponseAsync <Employee>(response); Assert.Equal(employee.Name, actualEmployee.Name); Assert.Equal(employee.Salary, actualEmployee.Salary); }