diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventObserver.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventObserver.cs deleted file mode 100644 index 5f2f96dd7..000000000 --- a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventObserver.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace TeachingRecordSystem.Core.Events.Processing; - -public interface IEventObserver -{ - Task OnEventSaved(EventBase @event); -} diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventPublisher.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventPublisher.cs new file mode 100644 index 000000000..984a5bb2e --- /dev/null +++ b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/IEventPublisher.cs @@ -0,0 +1,6 @@ +namespace TeachingRecordSystem.Core.Events.Processing; + +public interface IEventPublisher +{ + Task PublishEvent(EventBase @event); +} diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventObserver.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventObserver.cs deleted file mode 100644 index 067292e61..000000000 --- a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventObserver.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace TeachingRecordSystem.Core.Events.Processing; - -public class NoopEventObserver : IEventObserver -{ - public Task OnEventSaved(EventBase @event) => Task.CompletedTask; -} diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventPublisher.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventPublisher.cs new file mode 100644 index 000000000..cceccf20e --- /dev/null +++ b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/NoopEventPublisher.cs @@ -0,0 +1,6 @@ +namespace TeachingRecordSystem.Core.Events.Processing; + +public class NoopEventPublisher : IEventPublisher +{ + public Task PublishEvent(EventBase @event) => Task.CompletedTask; +} diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/PublishEventsBackgroundService.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/PublishEventsBackgroundService.cs index cc4be60f4..61dede54d 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/PublishEventsBackgroundService.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/PublishEventsBackgroundService.cs @@ -10,16 +10,16 @@ public class PublishEventsBackgroundService : BackgroundService private static readonly TimeSpan _pollInterval = TimeSpan.FromMinutes(1); - private readonly IEventObserver _eventObserver; + private readonly IEventPublisher _eventPublisher; private readonly IDbContextFactory _dbContextFactory; private readonly ILogger _logger; public PublishEventsBackgroundService( - IEventObserver eventObserver, + IEventPublisher eventPublisher, IDbContextFactory dbContextFactory, ILogger logger) { - _eventObserver = eventObserver; + _eventPublisher = eventPublisher; _dbContextFactory = dbContextFactory; _logger = logger; } @@ -82,7 +82,7 @@ where published is false try { var eventBase = e.ToEventBase(); - await _eventObserver.OnEventSaved(eventBase); + await _eventPublisher.PublishEvent(eventBase); e.Published = true; diff --git a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/ServiceCollectionExtensions.cs b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/ServiceCollectionExtensions.cs index 6e20c0f77..72598a14e 100644 --- a/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/ServiceCollectionExtensions.cs +++ b/TeachingRecordSystem/src/TeachingRecordSystem.Core/Events/Processing/ServiceCollectionExtensions.cs @@ -14,7 +14,7 @@ public static IServiceCollection AddEventPublishing( services.AddSingleton(); } - services.AddSingleton(); + services.AddSingleton(); return services; } diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/HostFixture.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/HostFixture.cs index cde62fae4..1f0132640 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/HostFixture.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/HostFixture.cs @@ -52,7 +52,7 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) // Publish events synchronously PublishEventsDbCommandInterceptor.ConfigureServices(services); - services.AddSingleton(_ => new ForwardToTestScopedEventObserver()); + services.AddSingleton(_ => new ForwardToTestScopedEventPublisher()); services.AddTestScoped(tss => tss.Clock); services.AddSingleton( sp => ActivatorUtilities.CreateInstance( @@ -110,11 +110,11 @@ public void OnProvidersExecuting(PageApplicationModelProviderContext context) } } - // IEventObserver needs to be a singleton but we want it to resolve to a test-scoped CaptureEventObserver. - // This provides a wrapper that can be registered as a singleon that delegates to the test-scoped IEventObserver instance. - private class ForwardToTestScopedEventObserver : IEventObserver + // IEventPublisher needs to be a singleton but we want it to resolve to a test-scoped CaptureEventPublisher. + // This provides a wrapper that can be registered as a singleon that delegates to the test-scoped IEventPublisher instance. + private class ForwardToTestScopedEventPublisher : IEventPublisher { - public Task OnEventSaved(EventBase @event) => TestScopedServices.GetCurrent().EventObserver.OnEventSaved(@event); + public Task PublishEvent(EventBase @event) => TestScopedServices.GetCurrent().EventPublisher.PublishEvent(@event); } private class ForwardToTestScopedClock : IClock diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/CheckAnswersTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/CheckAnswersTests.cs index 19ae2c223..f86dbd1d4 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/CheckAnswersTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/CheckAnswersTests.cs @@ -276,7 +276,7 @@ await journeyInstance.UpdateStateAsync(state => state.SetTrn(true, trn); }); - EventObserver.Clear(); + EventPublisher.Clear(); var request = new HttpRequestMessage(HttpMethod.Post, $"/check-answers?{journeyInstance.GetUniqueIdQueryParameter()}"); @@ -305,7 +305,7 @@ await journeyInstance.UpdateStateAsync(state => Assert.Equal(trnToken.Trn, data.TrnTokenTrn); Assert.Equal(applicationUser.UserId, data.ClientApplicationUserId); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var supportTaskCreatedEvent = Assert.IsType(e); Assert.Equal(Clock.UtcNow, supportTaskCreatedEvent.CreatedUtc); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/TestBase.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/TestBase.cs index 38e93dafe..61dce8936 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/TestBase.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/PageTests/RequestTrn/TestBase.cs @@ -26,7 +26,7 @@ protected TestBase(HostFixture hostFixture) public HostFixture HostFixture { get; } - public CaptureEventObserver EventObserver => _testServices.EventObserver; + public CaptureEventPublisher EventPublisher => _testServices.EventPublisher; public TestableClock Clock => _testServices.Clock; diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestBase.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestBase.cs index 0ccf786ee..30838d429 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestBase.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestBase.cs @@ -36,14 +36,14 @@ protected TestBase(HostFixture hostFixture) var events = synced.OfType(); foreach (var e in events) { - TestScopedServices.GetCurrent().EventObserver.OnEventSaved(e); + TestScopedServices.GetCurrent().EventPublisher.PublishEvent(e); } }); } public HostFixture HostFixture { get; } - public CaptureEventObserver EventObserver => _testServices.EventObserver; + public CaptureEventPublisher EventPublisher => _testServices.EventPublisher; public TestableClock Clock => _testServices.Clock; diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestScopedServices.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestScopedServices.cs index 9328a0242..7700cb30e 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestScopedServices.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.AuthorizeAccess.Tests/TestScopedServices.cs @@ -7,7 +7,7 @@ public class TestScopedServices public TestScopedServices() { Clock = new(); - EventObserver = new(); + EventPublisher = new(); } public static TestScopedServices GetCurrent() => @@ -25,5 +25,5 @@ public static TestScopedServices Reset() public TestableClock Clock { get; } - public CaptureEventObserver EventObserver { get; } + public CaptureEventPublisher EventPublisher { get; } } diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.Core.Tests/Events/Processing/PublishEventsBackgroundServiceTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.Core.Tests/Events/Processing/PublishEventsBackgroundServiceTests.cs index c7086fddc..31f2331d8 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.Core.Tests/Events/Processing/PublishEventsBackgroundServiceTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.Core.Tests/Events/Processing/PublishEventsBackgroundServiceTests.cs @@ -25,17 +25,17 @@ public async Task PublishEvents_PublishesUnpublishEventsAndSetsPublishedFlag() await dbContext.SaveChangesAsync(); var dbEvent = dbContext.ChangeTracker.Entries().Last().Entity; - var eventObserver = new TestableEventObserver(); + var eventPublisher = new TestableEventPublisher(); var logger = new NullLogger(); - var service = new PublishEventsBackgroundService(eventObserver, _dbFixture.GetDbContextFactory(), logger); + var service = new PublishEventsBackgroundService(eventPublisher, _dbFixture.GetDbContextFactory(), logger); // Act await service.PublishEvents(CancellationToken.None); // Assert - Assert.Collection(eventObserver.Events, e => e.Equals(@event)); + Assert.Collection(eventPublisher.Events, e => e.Equals(@event)); await dbContext.Entry(dbEvent).ReloadAsync(); Assert.True(dbEvent.Published); @@ -51,21 +51,21 @@ public async Task PublishEvents_DoesNotPublishAlreadyPublishedEvent() dbContext.ChangeTracker.Entries().Last().Entity.Published = true; await dbContext.SaveChangesAsync(); - var eventObserver = new TestableEventObserver(); + var eventPublisher = new TestableEventPublisher(); var logger = new NullLogger(); - var service = new PublishEventsBackgroundService(eventObserver, _dbFixture.GetDbContextFactory(), logger); + var service = new PublishEventsBackgroundService(eventPublisher, _dbFixture.GetDbContextFactory(), logger); // Act await service.PublishEvents(CancellationToken.None); // Assert - Assert.Empty(eventObserver.Events); + Assert.Empty(eventPublisher.Events); } [Fact] - public async Task PublishEvents_EventObserverThrows_DoesNotThrow() + public async Task PublishEvents_EventPublisherThrows_DoesNotThrow() { // Arrange using var dbContext = _dbFixture.GetDbContext(); @@ -74,13 +74,13 @@ public async Task PublishEvents_EventObserverThrows_DoesNotThrow() await dbContext.SaveChangesAsync(); var dbEvent = dbContext.ChangeTracker.Entries().Last().Entity; - var eventObserver = new Mock(); + var eventPublisher = new Mock(); var publishException = new Exception("Bang!"); - eventObserver.Setup(mock => mock.OnEventSaved(It.IsAny())).ThrowsAsync(publishException); + eventPublisher.Setup(mock => mock.PublishEvent(It.IsAny())).ThrowsAsync(publishException); var logger = new Mock>(); - var service = new PublishEventsBackgroundService(eventObserver.Object, _dbFixture.GetDbContextFactory(), logger.Object); + var service = new PublishEventsBackgroundService(eventPublisher.Object, _dbFixture.GetDbContextFactory(), logger.Object); // Act await service.PublishEvents(CancellationToken.None); @@ -96,13 +96,13 @@ public async Task PublishEvents_EventObserverThrows_DoesNotThrow() RaisedBy = SystemUser.SystemUserId }; - private class TestableEventObserver : IEventObserver + private class TestableEventPublisher : IEventPublisher { private readonly List _events = new(); public IReadOnlyCollection Events => _events.AsReadOnly(); - public Task OnEventSaved(EventBase @event) + public Task PublishEvent(EventBase @event) { _events.Add(@event); return Task.CompletedTask; diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/HostFixture.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/HostFixture.cs index d6f033627..dd55956be 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/HostFixture.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/HostFixture.cs @@ -49,7 +49,7 @@ protected override void ConfigureWebHost(IWebHostBuilder builder) services.AddSingleton(); services.AddStartupTask(); - services.AddSingleton(_ => new ForwardToTestScopedEventObserver()); + services.AddSingleton(_ => new ForwardToTestScopedEventPublisher()); services.AddTestScoped(tss => tss.Clock); services.AddTestScoped(tss => tss.DataverseAdapterMock.Object); services.AddTestScoped(tss => tss.AzureActiveDirectoryUserServiceMock.Object); @@ -106,11 +106,11 @@ public void OnProvidersExecuting(PageApplicationModelProviderContext context) } } - // IEventObserver needs to be a singleton but we want it to resolve to a test-scoped CaptureEventObserver. - // This provides a wrapper that can be registered as a singleon that delegates to the test-scoped IEventObserver instance. - private class ForwardToTestScopedEventObserver : IEventObserver + // IEventPublisher needs to be a singleton but we want it to resolve to a test-scoped CaptureEventPublisher. + // This provides a wrapper that can be registered as a singleon that delegates to the test-scoped IEventPublisher instance. + private class ForwardToTestScopedEventPublisher : IEventPublisher { - public Task OnEventSaved(EventBase @event) => TestScopedServices.GetCurrent().EventObserver.OnEventSaved(@event); + public Task PublishEvent(EventBase @event) => TestScopedServices.GetCurrent().EventPublisher.PublishEvent(@event); } private class ForwardToTestScopedClock : IClock diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/AddApiKeyTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/AddApiKeyTests.cs index dfd7a7b0b..a485de6a1 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/AddApiKeyTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/AddApiKeyTests.cs @@ -183,7 +183,7 @@ public async Task Post_ValidRequest_CreatesApiKeyCreatesEventAndRedirectsToAppli } }; - EventObserver.Clear(); + EventPublisher.Clear(); // Act var response = await HttpClient.SendAsync(request); @@ -203,7 +203,7 @@ public async Task Post_ValidRequest_CreatesApiKeyCreatesEventAndRedirectsToAppli return apiKey; }); - EventObserver.AssertEventsSaved( + EventPublisher.AssertEventsSaved( e => { var apiKeyCreatedEvent = Assert.IsType(e); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/EditApiKeyTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/EditApiKeyTests.cs index 613fa3bd2..217fbcb4c 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/EditApiKeyTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApiKeys/EditApiKeyTests.cs @@ -145,7 +145,7 @@ public async Task PostExpire_ValidRequest_SetsExpiresOnApiKeyCreatesEventAndRedi var request = new HttpRequestMessage(HttpMethod.Post, $"/api-keys/{apiKey.ApiKeyId}/Expire"); - EventObserver.Clear(); + EventPublisher.Clear(); // Act var response = await HttpClient.SendAsync(request); @@ -160,7 +160,7 @@ await WithDbContext(async dbContext => Assert.Equal(Clock.UtcNow, apiKey.Expires); }); - EventObserver.AssertEventsSaved( + EventPublisher.AssertEventsSaved( e => { var apiKeyUpdatedEvent = Assert.IsType(e); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/AddApplicationUserTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/AddApplicationUserTests.cs index 62daef37f..8799a435e 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/AddApplicationUserTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/AddApplicationUserTests.cs @@ -127,7 +127,7 @@ public async Task Post_ValidRequest_CreatesApplicationUserCreatesEventAndRedirec Assert.Equal($"/application-users/{applicationUser.UserId}", response.Headers.Location?.OriginalString); - EventObserver.AssertEventsSaved( + EventPublisher.AssertEventsSaved( e => { var applicationUserCreatedEvent = Assert.IsType(e); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/EditApplicationUserTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/EditApplicationUserTests.cs index 32f179303..f5c460e6f 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/EditApplicationUserTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/ApplicationUsers/EditApplicationUserTests.cs @@ -248,7 +248,7 @@ public async Task Post_ValidRequest_UpdatesNameAndRolesAndOneLoginSettingsAndCre } }; - EventObserver.Clear(); + EventPublisher.Clear(); // Act var response = await HttpClient.SendAsync(request); @@ -263,7 +263,7 @@ await WithDbContext(async dbContext => Assert.True(new HashSet(applicationUser.ApiRoles ?? []).SetEquals(new HashSet(newRoles))); }); - EventObserver.AssertEventsSaved( + EventPublisher.AssertEventsSaved( e => { var applicationUserUpdatedEvent = Assert.IsType(e); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/AddMq/CheckAnswersTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/AddMq/CheckAnswersTests.cs index 5c4bafbf0..3e072e6d4 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/AddMq/CheckAnswersTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/AddMq/CheckAnswersTests.cs @@ -172,7 +172,7 @@ await WithDbContext(async dbContext => qualificationId = qualification.QualificationId; }); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqCreatedEvent = new MandatoryQualificationCreatedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/DeleteMq/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/DeleteMq/ConfirmTests.cs index 1174e2cf7..a14e8b9e4 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/DeleteMq/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/DeleteMq/ConfirmTests.cs @@ -139,7 +139,7 @@ public async Task Post_Confirm_DeletesMqCreatesEventCompletesJourneyAndRedirects .WithStartDate(startDate) .WithStatus(status, endDate))); - EventObserver.Clear(); + EventPublisher.Clear(); var qualificationId = person.MandatoryQualifications!.Single().QualificationId; @@ -170,7 +170,7 @@ public async Task Post_Confirm_DeletesMqCreatesEventCompletesJourneyAndRedirects var redirectDoc = await redirectResponse.GetDocument(); AssertEx.HtmlDocumentHasFlashSuccess(redirectDoc, "Mandatory qualification deleted"); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqDeletedEvent = new MandatoryQualificationDeletedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Provider/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Provider/ConfirmTests.cs index 158548f8c..2d5a0bc4e 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Provider/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Provider/ConfirmTests.cs @@ -116,7 +116,7 @@ public async Task Post_Confirm_UpdatesMqCreatesEventAndCompletesJourneyRedirects var qualification = person.MandatoryQualifications.First(); var qualificationId = qualification.QualificationId; - EventObserver.Clear(); + EventPublisher.Clear(); var journeyInstance = await CreateJourneyInstance( qualificationId, @@ -153,7 +153,7 @@ await WithDbContext(async dbContext => Assert.Equal(newProvider.MandatoryQualificationProviderId, qualification.ProviderId); }); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqUpdatedEvent = new MandatoryQualificationUpdatedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Specialism/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Specialism/ConfirmTests.cs index 5353d4492..6babc3c4c 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Specialism/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Specialism/ConfirmTests.cs @@ -120,7 +120,7 @@ public async Task Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirects var changeReason = MqChangeSpecialismReasonOption.ChangeOfSpecialism; var changeReasonDetail = "Some reason"; - EventObserver.Clear(); + EventPublisher.Clear(); var journeyInstance = await CreateJourneyInstance( qualificationId, @@ -157,7 +157,7 @@ await WithDbContext(async dbContext => Assert.Equal(newMqSpecialism, qualification.Specialism); }); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqUpdatedEvent = new MandatoryQualificationUpdatedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/StartDate/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/StartDate/ConfirmTests.cs index adf79f695..f8d8ec384 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/StartDate/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/StartDate/ConfirmTests.cs @@ -120,7 +120,7 @@ public async Task Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirects var changeReason = MqChangeStartDateReasonOption.IncorrectStartDate; var changeReasonDetail = "Some reason"; - EventObserver.Clear(); + EventPublisher.Clear(); var journeyInstance = await CreateJourneyInstance( qualificationId, @@ -157,7 +157,7 @@ await WithDbContext(async dbContext => Assert.Equal(newStartDate, qualification.StartDate); }); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqUpdatedEvent = new MandatoryQualificationUpdatedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Status/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Status/ConfirmTests.cs index 3c2fe712d..03962b3ff 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Status/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Mqs/EditMq/Status/ConfirmTests.cs @@ -229,7 +229,7 @@ public async Task Post_Confirm_UpdatesMqCreatesEventCompletesJourneyAndRedirects var qualificationId = qualification.QualificationId; var provider = MandatoryQualificationProvider.GetById(qualification.ProviderId!.Value); - EventObserver.Clear(); + EventPublisher.Clear(); Guid? evidenceFileId = uploadEvidence ? Guid.NewGuid() : null; string? evidenceFileName = uploadEvidence ? "test.pdf" : null; @@ -276,7 +276,7 @@ await WithDbContext(async dbContext => Assert.Equal(newEndDate, qualification.EndDate); }); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var expectedMqUpdatedEvent = new MandatoryQualificationUpdatedEvent() { diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/AddUser/ConfirmTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/AddUser/ConfirmTests.cs index 8fe442959..c32428cf1 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/AddUser/ConfirmTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/AddUser/ConfirmTests.cs @@ -299,7 +299,7 @@ public async Task Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMe Assert.Equal(userId, user.AzureAdUserId); Assert.Collection(user.Roles, r => Assert.Equal(role, r)); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var userCreatedEvent = Assert.IsType(e); Assert.Equal(Clock.UtcNow, userCreatedEvent.CreatedUtc); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/EditUserTests.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/EditUserTests.cs index 8f84794aa..3660d17f9 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/EditUserTests.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/PageTests/Users/EditUserTests.cs @@ -248,7 +248,7 @@ public async Task Post_ValidRequest_CreatesUserEmitsEventAndRedirectsWithFlashMe if (expectedEvent) { - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var userCreatedEvent = Assert.IsType(e); Assert.Equal(Clock.UtcNow, userCreatedEvent.CreatedUtc); @@ -300,7 +300,7 @@ public async Task Post_ValidRequest_DeactivatesUsersEmitsEventAndRedirectsWithFl Assert.False(updatedUser.Active); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var userCreatedEvent = Assert.IsType(e); Assert.Equal(Clock.UtcNow, userCreatedEvent.CreatedUtc); @@ -346,7 +346,7 @@ public async Task Post_ValidRequest_ActivatesUsersEmitsEventAndRedirectsWithFlas Assert.True(updatedUser.Active); - EventObserver.AssertEventsSaved(e => + EventPublisher.AssertEventsSaved(e => { var userCreatedEvent = Assert.IsType(e); Assert.Equal(Clock.UtcNow, userCreatedEvent.CreatedUtc); diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestBase.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestBase.cs index 631ec7b23..4046cf166 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestBase.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestBase.cs @@ -34,14 +34,14 @@ protected TestBase(HostFixture hostFixture) var events = synced.OfType(); foreach (var e in events) { - TestScopedServices.GetCurrent().EventObserver.OnEventSaved(e); + TestScopedServices.GetCurrent().EventPublisher.PublishEvent(e); } }); } public HostFixture HostFixture { get; } - public CaptureEventObserver EventObserver => _testServices.EventObserver; + public CaptureEventPublisher EventPublisher => _testServices.EventPublisher; public Mock DataverseAdapterMock => _testServices.DataverseAdapterMock; diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestScopedServices.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestScopedServices.cs index 74de6b28f..3c8229668 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestScopedServices.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.SupportUi.Tests/TestScopedServices.cs @@ -12,7 +12,7 @@ public TestScopedServices() Clock = new(); DataverseAdapterMock = new(); AzureActiveDirectoryUserServiceMock = new(); - EventObserver = new(); + EventPublisher = new(); } public static TestScopedServices GetCurrent() => @@ -34,5 +34,5 @@ public static TestScopedServices Reset() public Mock AzureActiveDirectoryUserServiceMock { get; } - public CaptureEventObserver EventObserver { get; } + public CaptureEventPublisher EventPublisher { get; } } diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventObserver.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventPublisher.cs similarity index 88% rename from TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventObserver.cs rename to TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventPublisher.cs index 00252c661..095d5daec 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventObserver.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/CaptureEventPublisher.cs @@ -4,13 +4,13 @@ namespace TeachingRecordSystem.TestCommon; -public class CaptureEventObserver : IEventObserver +public class CaptureEventPublisher : IEventPublisher { private readonly HashSet _events = new(new EventIdEqualityComparer()); public void Clear() => _events.Clear(); - public Task OnEventSaved(EventBase @event) + public Task PublishEvent(EventBase @event) { _events.Add(@event); return Task.CompletedTask; diff --git a/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/Infrastructure/PublishEventsDbCommandInterceptor.cs b/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/Infrastructure/PublishEventsDbCommandInterceptor.cs index 795a19387..6a5495136 100644 --- a/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/Infrastructure/PublishEventsDbCommandInterceptor.cs +++ b/TeachingRecordSystem/tests/TeachingRecordSystem.TestCommon/Infrastructure/PublishEventsDbCommandInterceptor.cs @@ -9,11 +9,11 @@ namespace TeachingRecordSystem.TestCommon.Infrastructure; public class PublishEventsDbCommandInterceptor : SaveChangesInterceptor { - private readonly IEventObserver _eventObserver; + private readonly IEventPublisher _eventPublisher; - public PublishEventsDbCommandInterceptor(IEventObserver eventObserver) + public PublishEventsDbCommandInterceptor(IEventPublisher eventPublisher) { - _eventObserver = eventObserver; + _eventPublisher = eventPublisher; } public override InterceptionResult SavingChanges(DbContextEventData eventData, InterceptionResult result) @@ -35,7 +35,7 @@ public override ValueTask> SavingChangesAsync(DbContextE void OnEventSaved(object? sender, SavedChangesEventArgs args) { - _eventObserver.OnEventSaved(e.Entity.ToEventBase()).GetAwaiter().GetResult(); + _eventPublisher.PublishEvent(e.Entity.ToEventBase()).GetAwaiter().GetResult(); eventData.Context.SavedChanges -= OnEventSaved; } }