public void CreateReportWichEmptyDBTest()
        {
            // Arrange
            var mockILoggerReportController    = new Mock <ILogger <ReportController> >();
            var mockILoggerEducationRepository = new Mock <ILogger <EducationRepository> >();
            var mockILoggerModuleContext       = new Mock <ILogger <WEBAPIContext> >();
            DbContextOptionsBuilder <WEBAPIContext> optionsBuilder = new DbContextOptionsBuilder <WEBAPIContext>();

            optionsBuilder.UseInMemoryDatabase("CreateReportCreateReportWichEmptyDBTestDb");
            WEBAPIContext       context             = new WEBAPIContext(optionsBuilder.Options, mockILoggerModuleContext.Object);
            var                 educationRepository = new EducationRepository(context, mockILoggerEducationRepository.Object);
            var                 mockIReportSaver    = new Mock <IReportSaver>();
            List <LineOfReport> linesOfReportExpect = new List <LineOfReport>();
            List <LineOfReport> linesOfReportAcnual = new List <LineOfReport>();

            mockIReportSaver.Setup(d => d.Type).Returns("xml");
            ReportController controller = new ReportController(educationRepository, mockILoggerReportController.Object, new List <IReportSaver> {
                mockIReportSaver.Object
            });

            // Act
            educationRepository.EnsureDeleted();
            controller.CreateReport("Ivan Ivanov", "student", "xml");
            // Assert
            mockIReportSaver.Verify(rs => rs.SendReport(It.Is <ICollection <LineOfReport> >(lr => lr.Count == 0)));
        }
Ejemplo n.º 2
0
 private void btnCreateReport_Click(object sender, EventArgs e)
 {
     try
     {
         ReportController.CreateReport(tbReportPattern.Text, cbMachines.SelectedItem as Machine);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
     }
 }
        public async Task CreateReport()
        {
            var innBuhCodeToSalary = new Dictionary <string, decimal>
            {
                { "I01-B01", 70000m },
                { "I02-B02", 65000m },
                { "I03-B03", 80000m },
                { "I04-B04", 90000m },
                { "I05-B05", 50000m },
                { "I06-B06", 55000m },
                { "I07-B07", 35000m },
                { "I08-B08", 90000m },
                { "I09-B09", 120000m },
                { "I10-B10", 110000m },
                { "I11-B11", 120000m },
            };

            var department1 = new Department {
                Name = "ФинОтдел"
            };

            department1.Employees.AddRange(new[]
            {
                new Employee {
                    Name = "Андрей Сергеевич Бубнов", Inn = "I01", Department = department1
                },
                new Employee {
                    Name = "Григорий Евсеевич Зиновьев", Inn = "I02", Department = department1
                },
                new Employee {
                    Name = "Яков Михайлович Свердлов", Inn = "I03", Department = department1
                },
                new Employee {
                    Name = "Алексей Иванович Рыков", Inn = "I04", Department = department1
                }
            });
            var department2 = new Department {
                Name = "Бухгалтерия"
            };

            department2.Employees.AddRange(new[]
            {
                new Employee {
                    Name = "Василий Васильевич Кузнецов", Inn = "I05", Department = department2
                },
                new Employee {
                    Name = "Демьян Сергеевич Коротченко", Inn = "I06", Department = department2
                },
                new Employee {
                    Name = "Михаил Андреевич Суслов", Inn = "I07", Department = department2
                }
            });
            var department3 = new Department {
                Name = "ИТ"
            };

            department3.Employees.AddRange(new[]
            {
                new Employee {
                    Name = "Фрол Романович Козлов", Inn = "I08", Department = department3
                },
                new Employee {
                    Name = "Дмитрий Степанович Полянски", Inn = "I09", Department = department3
                },
                new Employee {
                    Name = "Андрей Павлович Кириленко", Inn = "I10", Department = department3
                },
                new Employee {
                    Name = "Арвид Янович Пельше", Inn = "I11", Department = department3
                }
            });

            var departmentRepository = new Mock <IDepartmentsRepository>();

            departmentRepository
            .Setup(repository => repository.GetActiveDepartmentsWithEmployees())
            .ReturnsAsync(new[] { department1, department2, department3 });

            var empCodeResolverService = new Mock <IEmpCodeResolverService>();

            empCodeResolverService
            .Setup(service => service.ResolveBuhCodeAsync(It.IsAny <string>()))
            .ReturnsAsync((string inn) => "B" + inn.Substring(1, 2));

            var salaryResolverService = new Mock <ISalaryResolverService>();

            salaryResolverService
            .Setup(service => service.ResolveSalaryAsync(It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync((string inn, string buhCode) => innBuhCodeToSalary[$"{inn}-{buhCode}"]);

            var loggerProvider = new Mock <ILoggerProvider>();

            var controller = new ReportController(departmentRepository.Object, empCodeResolverService.Object, salaryResolverService.Object, loggerProvider.Object);
            var result     = await controller.CreateReport(2019, 5);

            Assert.Equal(@"Май 2019
--------------------------------------------
ФинОтдел
Андрей Сергеевич Бубнов 70000р
Григорий Евсеевич Зиновьев 65000р
Яков Михайлович Свердлов 80000р
Алексей Иванович Рыков 90000р
Всего по отделу 305000р
--------------------------------------------
Бухгалтерия
Василий Васильевич Кузнецов 50000р
Демьян Сергеевич Коротченко 55000р
Михаил Андреевич Суслов 35000р
Всего по отделу 140000р
--------------------------------------------
ИТ
Фрол Романович Козлов 90000р
Дмитрий Степанович Полянски 120000р
Андрей Павлович Кириленко 110000р
Арвид Янович Пельше 120000р
Всего по отделу 440000р
--------------------------------------------
Всего по предприятию 885000р", result);
        }