public SqlMetadataStore( ILogger <SqlMetadataStore> logger, EventServerContext context) { this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.context = context ?? throw new ArgumentNullException(nameof(context)); }
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)); }
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); }
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); }
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()); }