public SqlMetadataStore(
     ILogger <SqlMetadataStore> logger,
     EventServerContext context)
 {
     this.logger  = logger ?? throw new ArgumentNullException(nameof(logger));
     this.context = context ?? throw new ArgumentNullException(nameof(context));
 }
Exemple #2
0
 public void Init_Tests()
 {
     mapper  = new MapperConfiguration(c => c.AddProfile <MappingProfile>()).CreateMapper();
     logger  = Mock.Of <ILogger <SqlEventQueueStore> >();
     options = new DbContextOptionsBuilder <EventServerContext>().UseInMemoryDatabase(databaseName: "Test_DB").Options;
     context = new EventServerContext(options);
     context.Database.EnsureCreated();
 }
 public SqlSubscriberQueueStore(
     IMapper mapper,
     ILogger <SqlSubscriberQueueStore> logger,
     EventServerContext context)
 {
     this.mapper  = mapper ?? throw new ArgumentNullException(nameof(mapper));
     this.logger  = logger ?? throw new ArgumentNullException(nameof(logger));
     this.context = context ?? throw new ArgumentNullException(nameof(context));
 }
Exemple #4
0
        public async Task EnqueueEventAsync_Adds_And_Saves()
        {
            // Setup
            var message = new ServerEventMessage {
                LogId = 4, ObjectId = "TEST", ObjectType = "TESTTYPE", Topic = "TOPIC", EventJson = "EVENT_JSON"
            };

            // Test
            var store = new SqlEventQueueStore(mapper, logger, context);
            var newId = await store.EnqueueEventAsync(message);

            // Assert
            Assert.AreEqual(4L, newId, "New Id was not returned");
            var testcontext = new EventServerContext(options);
            var items       = await testcontext.EventMessages.CountAsync();

            Assert.AreEqual(1, items);
        }
Exemple #5
0
        public async Task DequeueEventAsync_Removes_And_Saves()
        {
            // Setup
            var setupcontext = new EventServerContext(options);

            setupcontext.AddRange(
                new ServerEventMessageEntity {
                LogId = 4, ObjectId = "TEST", ObjectType = "TESTTYPE", Topic = "TOPIC", EventJson = "EVENT_JSON"
            });
            await setupcontext.SaveChangesAsync();

            // Test
            var store = new SqlEventQueueStore(mapper, logger, context);
            await store.DequeueEventAsync(4);

            // Assert
            var testcontext = new EventServerContext(options);
            var items       = await testcontext.EventMessages.CountAsync();

            Assert.AreEqual(0, items);
        }
Exemple #6
0
        public async Task PoisonEventsAsync_Moves_To_Poison()
        {
            // Setup
            var setupcontext = new EventServerContext(options);

            setupcontext.AddRange(
                new PoisonEventMessageEntity {
                LogId = 4, ObjectId = "TEST", ObjectType = "TESTTYPE", Topic = "TOPIC", EventJson = "EVENT_JSON"
            },
                new PoisonEventMessageEntity {
                LogId = 5, ObjectId = "TEST", ObjectType = "TESTTYPE", Topic = "TOPIC", EventJson = "EVENT_JSON"
            },
                new PoisonEventMessageEntity {
                LogId = 6, ObjectId = "TEST", ObjectType = "TESTTYPE", Topic = "TOPIC", EventJson = "EVENT_JSON"
            });
            await setupcontext.SaveChangesAsync();

            // Test
            var store = new SqlEventQueueStore(mapper, logger, context);
            var items = await store.PoisonEventsAsync(2);

            // Assert
            Assert.AreEqual(2, items.Count());
        }