Beispiel #1
0
        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р"));
        }
Beispiel #2
0
        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);
        }