public async Task RetrieveEventLogsPendingToPublishAsync_EventLogsFound_ReturnOrderedEventLogs(
                [Frozen] Mock <AWContext> mockContext
                )
            {
                //Arrange
                var entries = new List <IntegrationEventLogEntry> {
                    new IntegrationEventLogEntry(
                        new TestIntegrationEvent(),
                        Guid.NewGuid()
                        )
                };

                var mockSet = entries.AsQueryable().BuildMockDbSet();

                mockContext.Setup(x => x.Set <IntegrationEventLogEntry>())
                .Returns(mockSet.Object);

                var sut = new IntegrationEventLogService(
                    mockContext.Object,
                    typeof(IntegrationEventLogServiceUnitTests).Assembly
                    );

                //Act
                var guid      = Guid.Parse(entries[0].TransactionId);
                var eventLogs = await sut.RetrieveEventLogsPendingToPublishAsync(guid);

                //Assert
                eventLogs.Count().Should().Be(1);
            }
 public ProductIntegrationEventService(
     IBusControl eventBus,
     SalesDbContext salesContext,
     Func <DbConnection, IntegrationEventLogService> integrationEventLogServiceFactory)
 {
     _salesContext = salesContext ?? throw new ArgumentNullException(nameof(salesContext));
     _integrationEventLogServiceFactory = integrationEventLogServiceFactory ?? throw new ArgumentNullException(nameof(integrationEventLogServiceFactory));
     _eventBus        = eventBus ?? throw new ArgumentNullException(nameof(eventBus));
     _eventLogService = _integrationEventLogServiceFactory(salesContext.Database.GetDbConnection());
 }
Пример #3
0
        public IntegrationEventLogServiceFixture()
        {
            ContextOptions = new DbContextOptionsBuilder <OperationalDbContext>()
                             .UseInMemoryDatabase("ExpensesDb").Options;
            OperationalDbContext = new OperationalDbContext(ContextOptions);
            OperationalDbContext.Database.EnsureDeleted();
            OperationalDbContext.Database.EnsureCreated();

            EventLogService = new IntegrationEventLogService(
                OperationalDbContext,
                () => new List <Type>
            {
                typeof(FakeIntegrationEvent)
            });
        }