|
|
|
@@ -16,7 +16,6 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
public void TearDown()
|
|
|
|
public void TearDown()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
MagicCarpetDbContext.RemovePostsFromDatabase();
|
|
|
|
MagicCarpetDbContext.RemovePostsFromDatabase();
|
|
|
|
MagicCarpetDbContext.RemoveToursFromDatabase();
|
|
|
|
|
|
|
|
MagicCarpetDbContext.RemoveEmployeesFromDatabase();
|
|
|
|
MagicCarpetDbContext.RemoveEmployeesFromDatabase();
|
|
|
|
MagicCarpetDbContext.RemoveSalariesFromDatabase();
|
|
|
|
MagicCarpetDbContext.RemoveSalariesFromDatabase();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -30,7 +29,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id);
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getrecords?fromDate={DateTime.UtcNow.AddDays(-10):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(10):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
@@ -45,7 +44,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
public async Task GetList_WhenNoRecords_ShouldSuccess_Test()
|
|
|
|
public async Task GetList_WhenNoRecords_ShouldSuccess_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
@@ -66,7 +65,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee.Id, salaryDate: DateTime.UtcNow.AddDays(-2));
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getrecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
@@ -81,7 +80,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
public async Task GetList_WhenDateIsIncorrect_ShouldBadRequest_Test()
|
|
|
|
public async Task GetList_WhenDateIsIncorrect_ShouldBadRequest_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -96,7 +95,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee1.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee1.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee2.Id);
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee2.Id);
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={employee1.Id}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={employee1.Id}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
@@ -121,7 +120,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee2.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee2.Id, salaryDate: DateTime.UtcNow.AddDays(1).AddMinutes(-5));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee1.Id, salaryDate: DateTime.UtcNow.AddDays(-2));
|
|
|
|
MagicCarpetDbContext.InsertSalaryToDatabaseAndReturn(employee1.Id, salaryDate: DateTime.UtcNow.AddDays(-2));
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={employee1.Id}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id={employee1.Id}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.OK));
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
var data = await GetModelFromResponseAsync<List<SalaryViewModel>>(response);
|
|
|
|
@@ -139,7 +138,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
//Arrange
|
|
|
|
//Arrange
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "Иванов И.И.");
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "Иванов И.И.");
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&id={employee.Id}");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&id={employee.Id}");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -148,7 +147,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
public async Task GetList_ByEmployee_WhenIdIsNotGuid_ShouldBadRequest_Test()
|
|
|
|
public async Task GetList_ByEmployee_WhenIdIsNotGuid_ShouldBadRequest_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salaries/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id=id");
|
|
|
|
var response = await HttpClient.GetAsync($"/api/salary/getemployeerecords?fromDate={DateTime.UtcNow.AddDays(-1):MM/dd/yyyy HH:mm:ss}&toDate={DateTime.UtcNow.AddDays(1):MM/dd/yyyy HH:mm:ss}&id=id");
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -159,16 +158,18 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
//Arrange
|
|
|
|
//Arrange
|
|
|
|
var post = MagicCarpetDbContext.InsertPostToDatabaseAndReturn(salary: 1000);
|
|
|
|
var post = MagicCarpetDbContext.InsertPostToDatabaseAndReturn(salary: 1000);
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "Иванов И.И.", postId: post.PostId);
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "Иванов И.И.", postId: post.PostId);
|
|
|
|
var furniture = MagicCarpetDbContext.InsertTourToDatabaseAndReturn();
|
|
|
|
var sale = MagicCarpetDbContext.InsertSaleToDatabaseAndReturn(employee.Id);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var expectedSum = sale.Sum * 0.1 + post.Salary;
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salary/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
var salaries = MagicCarpetDbContext.GetSalariesFromDatabaseByEmployeeId(employee.Id);
|
|
|
|
var salaries = MagicCarpetDbContext.GetSalariesFromDatabaseByEmployeeId(employee.Id);
|
|
|
|
Assert.Multiple(() =>
|
|
|
|
Assert.Multiple(() =>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Assert.That(salaries, Has.Length.EqualTo(1));
|
|
|
|
Assert.That(salaries, Has.Length.EqualTo(1));
|
|
|
|
Assert.That(salaries.First().EmployeeSalary, Is.EqualTo(1000.5));
|
|
|
|
Assert.That(salaries.First().EmployeeSalary, Is.EqualTo(expectedSum));
|
|
|
|
Assert.That(salaries.First().SalaryDate.Month, Is.EqualTo(DateTime.UtcNow.Month));
|
|
|
|
Assert.That(salaries.First().SalaryDate.Month, Is.EqualTo(DateTime.UtcNow.Month));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -177,7 +178,7 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
public async Task Calculate_WithoutEmployees_ShouldSuccess_Test()
|
|
|
|
public async Task Calculate_WithoutEmployees_ShouldSuccess_Test()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salary/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
var salaries = MagicCarpetDbContext.Salaries.ToArray();
|
|
|
|
var salaries = MagicCarpetDbContext.Salaries.ToArray();
|
|
|
|
@@ -191,9 +192,9 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
var post = MagicCarpetDbContext.InsertPostToDatabaseAndReturn(salary: 1000);
|
|
|
|
var post = MagicCarpetDbContext.InsertPostToDatabaseAndReturn(salary: 1000);
|
|
|
|
var employee1 = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name 1", postId: post.PostId);
|
|
|
|
var employee1 = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name 1", postId: post.PostId);
|
|
|
|
var employee2 = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name 2", postId: post.PostId);
|
|
|
|
var employee2 = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name 2", postId: post.PostId);
|
|
|
|
var man = MagicCarpetDbContext.InsertTourToDatabaseAndReturn();
|
|
|
|
var sale = MagicCarpetDbContext.InsertSaleToDatabaseAndReturn(employee1.Id);
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salary/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NoContent));
|
|
|
|
var salary1 = MagicCarpetDbContext.GetSalariesFromDatabaseByEmployeeId(employee1.Id).First().EmployeeSalary;
|
|
|
|
var salary1 = MagicCarpetDbContext.GetSalariesFromDatabaseByEmployeeId(employee1.Id).First().EmployeeSalary;
|
|
|
|
@@ -207,9 +208,9 @@ internal class SalaryControllerTests : BaseWebApiControllerTest
|
|
|
|
//Arrange
|
|
|
|
//Arrange
|
|
|
|
MagicCarpetDbContext.InsertPostToDatabaseAndReturn();
|
|
|
|
MagicCarpetDbContext.InsertPostToDatabaseAndReturn();
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name", postId: Guid.NewGuid().ToString());
|
|
|
|
var employee = MagicCarpetDbContext.InsertEmployeeToDatabaseAndReturn(fio: "name", postId: Guid.NewGuid().ToString());
|
|
|
|
var furniture = MagicCarpetDbContext.InsertTourToDatabaseAndReturn();
|
|
|
|
var sale = MagicCarpetDbContext.InsertSaleToDatabaseAndReturn(employee.Id);
|
|
|
|
//Act
|
|
|
|
//Act
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salaries/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
var response = await HttpClient.PostAsync($"/api/salary/calculate?date={DateTime.UtcNow:MM/dd/yyyy}", null);
|
|
|
|
//Assert
|
|
|
|
//Assert
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
|
|
|
|
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
|
|
|
|
}
|
|
|
|
}
|