public void GenerateStream() { var depList = new List <Department>(); for (int i = 0; i < 2; i++) { depList.Add(new Department() { Name = $"Отдел {i}", Active = true, Id = i, }); } var empList = new List <Employee>(); for (int i = 0; i < 4; i++) { empList.Add(new Employee() { Name = "Шри Вих Ланча", Id = i, Inn = "xxx", BuhCode = "xxx", DepartmentId = i % 2, Salary = i % 2 == 0 ? 1000 : 500 }); } var context = new Mock <PgContext>(); context.Setup(c => c.ExecuteQueryAsync <Department>(It.IsAny <string>())) .Returns(Task.FromResult <IEnumerable <Department> >(depList)); context.Setup(c => c.ExecuteQueryAsync <Employee>(It.IsAny <string>())) .Returns(Task.FromResult <IEnumerable <Employee> >(empList)); var empSalaryService = new Mock <IEmpSalaryService>(); empSalaryService.Setup(empSer => empSer.Salary(It.IsAny <EmployeeReportBlock>())) .Returns(2000); var empCodeResolve = new Mock <IEmpCodeResolver>(); empCodeResolve.Setup(empSer => empSer.GetCode(It.IsAny <string>())) .Returns(Task.FromResult("xxxx")); var service = new SalaryReportService(context.Object) { EmpSalaryService = empSalaryService.Object, EmpCodeResolver = empCodeResolve.Object }; (Stream stream, string ext)result = service.GenerateToStreamAsync(2018, 1).Result; Assert.NotNull(result.stream); string content = ""; using (StreamReader streamReader = new StreamReader(result.stream, Encoding.UTF8)) { content = streamReader.ReadToEnd(); } Assert.True(content.Contains($"Всего по предприятию 16000р")); }
public void C_GetEmployeeReportByDircetor_ReturnReport(string _id, string name, string surname, Departments department, decimal baseSalary) { var directorID = Guid.Parse("345f97a8-284c-4533-b976-b13d3c75188f"); var id = Guid.Parse(_id); var _autorize = new AutorizeToken(Role.Director, directorID); double expactedAllTotalTime = 29; decimal expactedAllTotalSalary = 33_750; #region TestSetup //Настройка MOCK депозитария ICompletedTaskLogsService _serviceCompletedTaskLogs; ISalaryReportService _salaryReportService; IEmployeeService _employeeService; var idEmp1 = directorID; var idEmp2 = Guid.Parse("345f97a8-287c-4533-b976-b13d3c75188f"); var idEmp3 = Guid.Parse("345f97a8-288c-4533-b976-b13d3c75188f"); Mock <ICompletedTasksLogRepository> _repositoryCompletedTaskLog = new Mock <ICompletedTasksLogRepository>(); _repositoryCompletedTaskLog .Setup(method => method.GetCompletedTasksListInPeriodAsync(DateTime.Now.Date.AddDays(-5), DateTime.Now.Date)) .ReturnsAsync(() => new List <CompletedTaskLog> { new CompletedTaskLog(Guid.NewGuid(), idEmp1, DateTime.Now.Date.AddDays(-5), 5, "TestTask4"), new CompletedTaskLog(Guid.NewGuid(), idEmp2, DateTime.Now.Date.AddDays(-5), 3, "TestTask5"), new CompletedTaskLog(Guid.NewGuid(), idEmp1, DateTime.Now.Date.AddDays(-3), 9, "TestTask5"), new CompletedTaskLog(Guid.NewGuid(), idEmp2, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), new CompletedTaskLog(Guid.NewGuid(), idEmp2, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), new CompletedTaskLog(Guid.NewGuid(), idEmp1, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), new CompletedTaskLog(Guid.NewGuid(), idEmp3, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), new CompletedTaskLog(Guid.NewGuid(), idEmp3, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), new CompletedTaskLog(Guid.NewGuid(), idEmp1, DateTime.Now.Date.AddDays(-2), 3, "TestTask6") }) .Verifiable(); Mock <IEmployeeRepository> _repositoryEmployee; _repositoryEmployee = new Mock <IEmployeeRepository>(); _repositoryEmployee .Setup(method => method.GetEmployeeByIdAsync(idEmp1)) .ReturnsAsync(new DirectorEmployee(idEmp1, name, surname, department, baseSalary)); _repositoryEmployee .Setup(method => method.GetEmployeeByIdAsync(idEmp2)) .ReturnsAsync(new StaffEmployee(idEmp2, "Витя", "Викторов", Departments.IT, 160_000)); _repositoryEmployee .Setup(method => method.GetEmployeeByIdAsync(idEmp3)) .ReturnsAsync(() => null); //Настройка сервисов _serviceCompletedTaskLogs = new CompletedTasksLogsService(_repositoryCompletedTaskLog.Object, _autorize); _employeeService = new EmployeeService(_repositoryEmployee.Object, _autorize); _salaryReportService = new SalaryReportService(_serviceCompletedTaskLogs, _employeeService); #endregion DateTime firstDay = DateTime.Now.Date.AddDays(-5); DateTime lastDay = DateTime.Now.Date; var result = _salaryReportService.GetAllEmployeesSalaryReport((firstDay, lastDay)).Result; Assert.IsNotNull(result); Assert.AreEqual(expactedAllTotalSalary, result.TotalSalary); Assert.AreEqual(expactedAllTotalTime, result.TotalTime); }
public void E_GetEmployeeReportByStaffEmployee_ReturnNull(string _id, string name, string surname, Departments department, decimal baseSalary, Positions position) { var freelancerID = Guid.Parse("345f97a8-288c-4533-b976-b13d3c75188f"); var id = Guid.Parse(_id); var _autorize = new AutorizeToken(Role.Freelancer, freelancerID); #region TestSetup //Настройка MOCK депозитария ICompletedTaskLogsService _serviceCompletedTaskLogs; ISalaryReportService _salaryReportService; IEmployeeService _employeeService; Mock <ICompletedTasksLogRepository> _repositoryCompletedTaskLog; _repositoryCompletedTaskLog = new Mock <ICompletedTasksLogRepository>(); _repositoryCompletedTaskLog .Setup(method => method.GetCompletedTasksListByEmployeeAsync(id, DateTime.Now.Date.AddDays(-5), DateTime.Now.Date)) .ReturnsAsync(() => new List <CompletedTaskLog> { new CompletedTaskLog(Guid.NewGuid(), id, DateTime.Now.Date.AddDays(-5), 5, "TestTask4"), new CompletedTaskLog(Guid.NewGuid(), id, DateTime.Now.Date.AddDays(-5), 3, "TestTask5"), new CompletedTaskLog(Guid.NewGuid(), id, DateTime.Now.Date.AddDays(-3), 9, "TestTask5"), new CompletedTaskLog(Guid.NewGuid(), id, DateTime.Now.Date.AddDays(-2), 3, "TestTask6"), }) .Verifiable(); var idEmp1 = Guid.Parse("345f97a8-287c-4533-b976-b13d3c75188f"); Mock <IEmployeeRepository> _repositoryEmployee; _repositoryEmployee = new Mock <IEmployeeRepository>(); _repositoryEmployee .Setup(method => method.GetEmployeeByIdAsync(idEmp1)) .ReturnsAsync(new DirectorEmployee(idEmp1, name, surname, department, baseSalary)); //Настройка сервисов _serviceCompletedTaskLogs = new CompletedTasksLogsService(_repositoryCompletedTaskLog.Object, _autorize); _employeeService = new EmployeeService(_repositoryEmployee.Object, _autorize); _salaryReportService = new SalaryReportService(_serviceCompletedTaskLogs, _employeeService); //Настройка сотрудника BaseEmployee employee = null; switch (position) { case Positions.None: break; case Positions.Director: employee = new DirectorEmployee(id, name, surname, department, baseSalary); break; case Positions.Developer: employee = new StaffEmployee(id, name, surname, department, baseSalary); break; case Positions.Freelance: employee = new FreeLancerEmployee(id, name, surname, department, baseSalary); break; default: break; } #endregion DateTime firstDay = DateTime.Now.Date.AddDays(-5); DateTime lastDay = DateTime.Now.Date; var result = _salaryReportService.GetEmployeeSalaryReport(employee, (firstDay, lastDay)).Result; Assert.IsNull(result); }