public async Task Should_export_report()
        {
            var storageProvider = new Mock <IStorageProvider>();
            var mapper          = new Mock <IMapper>();
            var exporter        = new Mock <IReportExporter>();

            exporter.Setup(p => p.ExportAsync(It.IsAny <IEnumerable <IHashReport> >(), It.IsAny <string>())).ReturnsAsync(true);

            var innerReports = new List <IHashFileReport>()
            {
                new HashFileReport()
                {
                    File = "test\\1", Hash = "2"
                }
            };
            var outerReports = new List <IHashReport>()
            {
                new HashReport()
                {
                    Name = "testreport", Reports = innerReports
                }
            };
            var service = new ReportExportService(null, exporter.Object, storageProvider.Object, mapper.Object);
            var result  = await service.ExportAsync(outerReports, "test");

            result.Should().BeTrue();
        }
        public void Should_not_return_game_report()
        {
            var storageProvider = new Mock <IStorageProvider>();
            var mapper          = new Mock <IMapper>();
            var exporter        = new Mock <IReportExporter>();

            exporter.Setup(p => p.ExportAsync(It.IsAny <IEnumerable <IHashReport> >(), It.IsAny <string>())).ReturnsAsync(true);

            var innerReports = new List <IHashFileReport>()
            {
                new HashFileReport()
                {
                    File = "test\\1", Hash = "2"
                }
            };
            var outerReports = new List <IHashReport>()
            {
                new HashReport()
                {
                    Name = "testreport", Reports = innerReports, ReportType = HashReportType.Collection
                }
            };
            var service = new ReportExportService(null, exporter.Object, storageProvider.Object, mapper.Object);
            var result  = service.GetGameReports(outerReports.ToList());

            result.Count().Should().Be(0);
        }
        public void Should_return_hash_with_diff_only()
        {
            DISetup.SetupContainer();

            var storageProvider = new Mock <IStorageProvider>();
            var mapper          = new Mock <IMapper>();
            var exporter        = new Mock <IReportExporter>();

            exporter.Setup(p => p.ExportAsync(It.IsAny <IEnumerable <IHashReport> >(), It.IsAny <string>())).ReturnsAsync(true);

            var firstInnerReports = new List <IHashFileReport>()
            {
                new HashFileReport()
                {
                    File = "test\\test", Hash = "3"
                }
            };
            var firstOuterReports = new List <IHashReport>()
            {
                new HashReport()
                {
                    Name = "testreport", Reports = firstInnerReports, ReportType = HashReportType.Game
                }
            };

            var secondInnerReports = new List <IHashFileReport>()
            {
                new HashFileReport()
                {
                    File = "test\\test", Hash = "2"
                }
            };
            var secondOuterReports = new List <IHashReport>()
            {
                new HashReport()
                {
                    Name = "testreport", Reports = secondInnerReports, ReportType = HashReportType.Game
                }
            };

            var messageBus = new Mock <IMessageBus>();

            messageBus.Setup(p => p.PublishAsync(It.IsAny <IMessageBusEvent>()));
            messageBus.Setup(p => p.Publish(It.IsAny <IMessageBusEvent>()));

            var service = new ReportExportService(messageBus.Object, exporter.Object, storageProvider.Object, mapper.Object);
            var result  = service.CompareReports(firstOuterReports, secondOuterReports);

            result.Should().NotBeNull();
            result.Count.Should().Be(1);
            result.FirstOrDefault().Reports.Count.Should().Be(1);
        }
        public async Task Should_not_import_report()
        {
            var storageProvider = new Mock <IStorageProvider>();
            var mapper          = new Mock <IMapper>();
            var exporter        = new Mock <IReportExporter>();

            exporter.Setup(p => p.ImportAsync(It.IsAny <string>())).ReturnsAsync((IEnumerable <IHashReport>)null);

            var service = new ReportExportService(null, exporter.Object, storageProvider.Object, mapper.Object);
            var result  = await service.ImportAsync("test");

            result.Should().BeNull();
        }
        public void Should_not_return_game_report_when_report_null()
        {
            var storageProvider = new Mock <IStorageProvider>();
            var mapper          = new Mock <IMapper>();
            var exporter        = new Mock <IReportExporter>();

            exporter.Setup(p => p.ExportAsync(It.IsAny <IEnumerable <IHashReport> >(), It.IsAny <string>())).ReturnsAsync(true);

            var service = new ReportExportService(null, exporter.Object, storageProvider.Object, mapper.Object);
            var result  = service.GetGameReports(null);

            result.Should().BeNull();
        }