示例#1
0
 public InvoiceWorkerServiceTest()
 {
     _pdfService = new Mock <IPdfGenerateService>();
     _logger     = new Mock <ILogger>();
     _service    = new InvoiceWorkerService(_pdfService.Object, _logger.Object);
     using (StreamReader r = new StreamReader("TestPayload/EventFeed.json"))
     {
         _feed = JsonConvert.DeserializeObject <EventFeed>(r.ReadToEnd());
     }
 }
        public void Setup()
        {
            var logger      = new Mock <ILogger>();
            var handlerMock = new Mock <HttpMessageHandler>();
            var response    = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(FeedDataGenerator.GenerateData(3, 0))),
            };

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(response);

            var httpClient = new HttpClient(handlerMock.Object);

            _options = new InvoiceWorkerOptions
            {
                FeedUrl           = "https://localhost:8080",
                InvoicesDirectory = GetTestOutputDirectoryName()
            };

            Console.WriteLine($"Writing PDF Files to '{_options.InvoicesDirectory}'");

            var eventsRepository = new InvoiceEventsRepository(httpClient, _options, logger.Object);
            var pdfWriter        = new PDFDocumentWriter(logger.Object);

            // TODO: Mock storage, this won't run in CI/CD like this
            var storage = new FileSystemStorageRepository(_options);

            _invoiceWorkerService = new InvoiceWorkerService(eventsRepository, pdfWriter, storage, _options, logger.Object);
        }
示例#3
0
 public InvoiceWorkerApp(IInvoiceWorkerService service, ILogger logger, IAppConfiguration config)
 {
     _service = service;
     _logger  = logger;
     _config  = config;
 }