From 79439f5b575bcf8deb337feb982a2ea5149f22f3 Mon Sep 17 00:00:00 2001 From: Kamil Grzybek Date: Sat, 28 Mar 2020 22:24:48 +0100 Subject: [PATCH] System Integration Testing (SIT) --- README.md | 168 ++++++++++++++++++ docs/Images/SystemIntegrationTests.jpg | Bin 0 -> 254681 bytes src/API/CompanyName.MyMeetings.API/Startup.cs | 16 +- src/CompanyName.MyMeetings.sln | 7 + .../Configuration/AdministrationStartup.cs | 11 +- .../EventsBus/EventsBusModule.cs | 22 ++- .../Configuration/Quartz/QuartzStartup.cs | 6 +- .../IntegrationTests/SeedWork/TestBase.cs | 3 +- .../Commands/InternalCommandBase.cs | 15 ++ .../ProposeMeetingGroupCommand.cs | 5 +- .../ProposeMeetingGroupCommandHandler.cs | 6 +- .../EventsBus/EventsBusModule.cs | 17 +- .../Configuration/MeetingsStartup.cs | 16 +- .../ProcessInternalCommandsCommandHandler.cs | 2 +- .../Processing/ProcessingModule.cs | 10 +- ...OfWorkCommandHandlerWithResultDecorator.cs | 46 +++++ ...dationCommandHandlerWithResultDecorator.cs | 41 +++++ .../Configuration/Quartz/QuartzStartup.cs | 6 +- ...anyName.MyMeetings.IntegrationTests.csproj | 26 +++ .../CreateMeetingGroupTests.cs | 118 ++++++++++++ .../SeedWork/AssertErrorException.cs | 12 ++ .../SeedWork/ExecutionContextMock.cs | 16 ++ src/Tests/IntegrationTests/SeedWork/IProbe.cs | 13 ++ src/Tests/IntegrationTests/SeedWork/Poller.cs | 37 ++++ .../IntegrationTests/SeedWork/TestBase.cs | 117 ++++++++++++ .../IntegrationTests/SeedWork/Timeout.cs | 19 ++ 26 files changed, 727 insertions(+), 28 deletions(-) create mode 100644 docs/Images/SystemIntegrationTests.jpg create mode 100644 src/Modules/Meetings/Infrastructure/Configuration/Processing/UnitOfWorkCommandHandlerWithResultDecorator.cs create mode 100644 src/Modules/Meetings/Infrastructure/Configuration/Processing/ValidationCommandHandlerWithResultDecorator.cs create mode 100644 src/Tests/IntegrationTests/CompanyName.MyMeetings.IntegrationTests.csproj create mode 100644 src/Tests/IntegrationTests/CreateMeetingGroup/CreateMeetingGroupTests.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/AssertErrorException.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/ExecutionContextMock.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/IProbe.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/Poller.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/TestBase.cs create mode 100644 src/Tests/IntegrationTests/SeedWork/Timeout.cs diff --git a/README.md b/README.md index 63f011d2..c57f21b4 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ Full Modular Monolith .NET application with Domain-Driven Design approach.   [3.13 Integration Tests](#313-integration-tests) +  [3.14 System Integration Testing](#314-system-integration-testing) + [4. Technology](#4-technology) [5. How to Run](#5-how-to-run) @@ -1052,6 +1054,170 @@ public class MeetingPaymentTests : TestBase Each Command/Query processing is a separate execution (with different object graph resolution, context, database connection etc.) thanks to Composition Root of each module. This behavior is important and desirable. +### 3.14 System Integration Testing + +#### Definition +[System Integration Testing (SIT)](https://en.wikipedia.org/wiki/System_integration_testing) is performed to verify the interactions between the modules of a software system. It involves the overall testing of a complete system of many subsystem components or elements. + +#### Implementation + +Implementation of system integration tests is based on approach of integration testing of modules in isolation (invoking commands and queries) described in the previous section. + +The problem is that in this case we are dealing with **asynchronous communication**. Due to asynchrony, our **test must wait for the result** at certain times. + +To correctly implement such tests, the **Sampling** technique and implementation described in the [Growing Object-Oriented Software, Guided by Tests](https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627) book was used: + +>An asynchronous test must wait for success and use timeouts to detect failure. This implies that every tested activity must have an observable effect: a test must affect the system so that its observable state becomes different. This sounds obvious but it drives how we think about writing asynchronous tests. If an activity has no observable effect, there is nothing the test can wait for, and therefore no way for the test to synchronize with the system it is testing. There are two ways a test can observe the system: by sampling its observable state or by listening for events that it sends out. + +![](docs/Images/SystemIntegrationTests.jpg) + +Test below: +1. Creates Meeting Group Proposal in Meetings module +2. Waits until Meeting Group Proposal to verification will be available in Administration module with 10 seconds timeout +3. Accepts Meeting Group Proposal in Administration module +4. Waits until Meeting Group is created in Meetings module with 15 seconds timeout + +```csharp +public class CreateMeetingGroupTests : TestBase +{ + [Test] + public async Task CreateMeetingGroupScenario_WhenProposalIsAccepted() + { + var meetingGroupId = await MeetingsModule.ExecuteCommandAsync( + new ProposeMeetingGroupCommand("Name", + "Description", + "Location", + "PL")); + + AssertEventually( + new GetMeetingGroupProposalFromAdministrationProbe(meetingGroupId, AdministrationModule), + 10000); + + await AdministrationModule.ExecuteCommandAsync(new AcceptMeetingGroupProposalCommand(meetingGroupId)); + + AssertEventually( + new GetCreatedMeetingGroupFromMeetingsProbe(meetingGroupId, MeetingsModule), + 15000); + } + + private class GetCreatedMeetingGroupFromMeetingsProbe : IProbe + { + private readonly Guid _expectedMeetingGroupId; + + private readonly IMeetingsModule _meetingsModule; + + private List _allMeetingGroups; + + public GetCreatedMeetingGroupFromMeetingsProbe( + Guid expectedMeetingGroupId, + IMeetingsModule meetingsModule) + { + _expectedMeetingGroupId = expectedMeetingGroupId; + _meetingsModule = meetingsModule; + } + + public bool IsSatisfied() + { + return _allMeetingGroups != null && + _allMeetingGroups.Any(x => x.Id == _expectedMeetingGroupId); + } + + public async Task SampleAsync() + { + _allMeetingGroups = await _meetingsModule.ExecuteQueryAsync(new GetAllMeetingGroupsQuery()); + } + + public string DescribeFailureTo() + => $"Meeting group with ID: {_expectedMeetingGroupId} is not created"; + } + + private class GetMeetingGroupProposalFromAdministrationProbe : IProbe + { + private readonly Guid _expectedMeetingGroupProposalId; + + private MeetingGroupProposalDto _meetingGroupProposal; + + private readonly IAdministrationModule _administrationModule; + + public GetMeetingGroupProposalFromAdministrationProbe(Guid expectedMeetingGroupProposalId, IAdministrationModule administrationModule) + { + _expectedMeetingGroupProposalId = expectedMeetingGroupProposalId; + _administrationModule = administrationModule; + } + + public bool IsSatisfied() + { + if (_meetingGroupProposal == null) + { + return false; + } + + if (_meetingGroupProposal.Id == _expectedMeetingGroupProposalId && + _meetingGroupProposal.StatusCode == MeetingGroupProposalStatus.ToVerify.Value) + { + return true; + } + + return false; + } + + public async Task SampleAsync() + { + try + { + _meetingGroupProposal = + await _administrationModule.ExecuteQueryAsync( + new GetMeetingGroupProposalQuery(_expectedMeetingGroupProposalId)); + } + catch + { + // ignored + } + } + + public string DescribeFailureTo() + => $"Meeting group proposal with ID: {_expectedMeetingGroupProposalId} to verification not created"; + } +} +``` + +Poller class implementation (based on example in the book): + +```csharp +public class Poller +{ + private readonly int _timeoutMillis; + + private readonly int _pollDelayMillis; + + public Poller(int timeoutMillis) + { + _timeoutMillis = timeoutMillis; + _pollDelayMillis = 1000; + } + + public void Check(IProbe probe) + { + var timeout = new Timeout(_timeoutMillis); + while (!probe.IsSatisfied()) + { + if (timeout.HasTimedOut()) + { + throw new AssertErrorException(DescribeFailureOf(probe)); + } + + Thread.Sleep(_pollDelayMillis); + probe.SampleAsync(); + } + } + + private static string DescribeFailureOf(IProbe probe) + { + return probe.DescribeFailureTo(); + } +} +``` + ## 4. Technology List of technologies, frameworks and libraries used for implementation: @@ -1132,6 +1298,7 @@ List of features/tasks/approaches to add: | Architecture Decision Log update | High | Completed | 2019-11-09 | | Integration automated tests | Normal | Completed | 2020-02-24 | | Migration to .NET Core 3.1 | Low | Completed | 2020-03-04 | +| System Integration Testing | Normal | Completed | 2020-03-28 | | API automated tests | Normal | | | | FrontEnd SPA application | Normal | | | | Meeting comments feature | Low | | | @@ -1218,6 +1385,7 @@ The project is under [MIT license](https://opensource.org/licenses/MIT). - ["The Art of Unit Testing: with examples in C#"](https://www.amazon.com/Art-Unit-Testing-examples/dp/1617290890) book, Roy Osherove - ["Unit Test Your Architecture with ArchUnit"](https://blogs.oracle.com/javamagazine/unit-test-your-architecture-with-archunit) article, Jonas Havers - ["Unit Testing Principles, Practices, and Patterns"](https://www.amazon.com/Unit-Testing-Principles-Practices-Patterns/dp/1617296279) book, Vladimir Khorikov +- ["Growing Object-Oriented Software, Guided by Tests"](https://www.amazon.com/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627) book, Steve Freeman, Nat Pryce ### UML - ["UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)"](https://www.amazon.com/UML-Distilled-Standard-Modeling-Language/dp/0321193687) book, Martin Fowler diff --git a/docs/Images/SystemIntegrationTests.jpg b/docs/Images/SystemIntegrationTests.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0f14253bdf10f595d7e5b22dc3041c652b3293f GIT binary patch literal 254681 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 literal 0 HcmV?d00001 diff --git a/src/API/CompanyName.MyMeetings.API/Startup.cs b/src/API/CompanyName.MyMeetings.API/Startup.cs index faeeb93b..444b7b8a 100644 --- a/src/API/CompanyName.MyMeetings.API/Startup.cs +++ b/src/API/CompanyName.MyMeetings.API/Startup.cs @@ -163,8 +163,19 @@ private IServiceProvider CreateAutofacServiceProvider(IServiceCollection service var emailsConfiguration = new EmailsConfiguration(_configuration["EmailsConfiguration:FromEmail"]); - MeetingsStartup.Initialize(this._configuration[MeetingsConnectionString], executionContextAccessor, _logger, emailsConfiguration); - AdministrationStartup.Initialize(this._configuration[MeetingsConnectionString], executionContextAccessor, _logger); + MeetingsStartup.Initialize( + this._configuration[MeetingsConnectionString], + executionContextAccessor, + _logger, + emailsConfiguration, + null); + + AdministrationStartup.Initialize( + this._configuration[MeetingsConnectionString], + executionContextAccessor, + _logger, + null); + UserAccessStartup.Initialize( this._configuration[MeetingsConnectionString], executionContextAccessor, @@ -172,6 +183,7 @@ private IServiceProvider CreateAutofacServiceProvider(IServiceCollection service emailsConfiguration, this._configuration["Security:TextEncryptionKey"], null); + PaymentsStartup.Initialize( this._configuration[MeetingsConnectionString], executionContextAccessor, diff --git a/src/CompanyName.MyMeetings.sln b/src/CompanyName.MyMeetings.sln index ddefa292..253e07db 100644 --- a/src/CompanyName.MyMeetings.sln +++ b/src/CompanyName.MyMeetings.sln @@ -101,6 +101,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.MyMeetings.Modu EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.MyMeetings.Modules.Administration.IntegrationTests", "Modules\Administration\Tests\IntegrationTests\CompanyName.MyMeetings.Modules.Administration.IntegrationTests.csproj", "{3D7FDF4A-6B8B-49CA-8E28-5B292DC0954F}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CompanyName.MyMeetings.IntegrationTests", "Tests\IntegrationTests\CompanyName.MyMeetings.IntegrationTests.csproj", "{586DB9FA-CBBF-4867-A57D-E2359925D09A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -245,6 +247,10 @@ Global {3D7FDF4A-6B8B-49CA-8E28-5B292DC0954F}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D7FDF4A-6B8B-49CA-8E28-5B292DC0954F}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D7FDF4A-6B8B-49CA-8E28-5B292DC0954F}.Release|Any CPU.Build.0 = Release|Any CPU + {586DB9FA-CBBF-4867-A57D-E2359925D09A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {586DB9FA-CBBF-4867-A57D-E2359925D09A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {586DB9FA-CBBF-4867-A57D-E2359925D09A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {586DB9FA-CBBF-4867-A57D-E2359925D09A}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -292,6 +298,7 @@ Global {396A6C3F-74BA-4D85-8BF3-1182F9DE9D95} = {0FF699EF-8156-43CB-8D18-8EA28F30E9EE} {B448FDC3-5F85-47EE-9F4A-2654E8CC67E1} = {53E4F002-E708-45F7-8444-19EB8977B5C9} {3D7FDF4A-6B8B-49CA-8E28-5B292DC0954F} = {F544D6DA-740A-4313-9542-D989666EA9DE} + {586DB9FA-CBBF-4867-A57D-E2359925D09A} = {8B08A9EE-CE27-4CC3-ACB3-3BD9628E5479} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6B94C21A-AA6D-4D82-963E-C69C0353B938} diff --git a/src/Modules/Administration/Infrastructure/Configuration/AdministrationStartup.cs b/src/Modules/Administration/Infrastructure/Configuration/AdministrationStartup.cs index 5993cdf1..828bd585 100644 --- a/src/Modules/Administration/Infrastructure/Configuration/AdministrationStartup.cs +++ b/src/Modules/Administration/Infrastructure/Configuration/AdministrationStartup.cs @@ -1,5 +1,6 @@ using Autofac; using CompanyName.MyMeetings.BuildingBlocks.Application; +using CompanyName.MyMeetings.BuildingBlocks.Infrastructure.EventBus; using CompanyName.MyMeetings.Modules.Administration.Infrastructure.Configuration.Authentication; using CompanyName.MyMeetings.Modules.Administration.Infrastructure.Configuration.DataAccess; using CompanyName.MyMeetings.Modules.Administration.Infrastructure.Configuration.EventsBus; @@ -20,11 +21,12 @@ public class AdministrationStartup public static void Initialize( string connectionString, IExecutionContextAccessor executionContextAccessor, - ILogger logger) + ILogger logger, + IEventsBus eventsBus) { var moduleLogger = logger.ForContext("Module", "Administration"); - ConfigureContainer(connectionString, executionContextAccessor, moduleLogger); + ConfigureContainer(connectionString, executionContextAccessor, moduleLogger, eventsBus); QuartzStartup.Initialize(moduleLogger); @@ -33,7 +35,8 @@ public static void Initialize( private static void ConfigureContainer(string connectionString, IExecutionContextAccessor executionContextAccessor, - ILogger logger) + ILogger logger, + IEventsBus eventsBus) { var containerBuilder = new ContainerBuilder(); @@ -43,7 +46,7 @@ private static void ConfigureContainer(string connectionString, containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new ProcessingModule()); - containerBuilder.RegisterModule(new EventsBusModule()); + containerBuilder.RegisterModule(new EventsBusModule(eventsBus)); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new AuthenticationModule()); containerBuilder.RegisterModule(new OutboxModule()); diff --git a/src/Modules/Administration/Infrastructure/Configuration/EventsBus/EventsBusModule.cs b/src/Modules/Administration/Infrastructure/Configuration/EventsBus/EventsBusModule.cs index 2223f1b1..c23ec2a1 100644 --- a/src/Modules/Administration/Infrastructure/Configuration/EventsBus/EventsBusModule.cs +++ b/src/Modules/Administration/Infrastructure/Configuration/EventsBus/EventsBusModule.cs @@ -6,11 +6,27 @@ namespace CompanyName.MyMeetings.Modules.Administration.Infrastructure.Configura { internal class EventsBusModule : Autofac.Module { + private readonly IEventsBus _eventsBus; + + public EventsBusModule(IEventsBus eventsBus) + { + _eventsBus = eventsBus; + } + protected override void Load(ContainerBuilder builder) { - builder.RegisterType() - .As() - .SingleInstance(); + if (_eventsBus != null) + { + builder.RegisterInstance(_eventsBus).SingleInstance(); + + } + else + { + builder.RegisterType() + .As() + .SingleInstance(); + } + } } } \ No newline at end of file diff --git a/src/Modules/Administration/Infrastructure/Configuration/Quartz/QuartzStartup.cs b/src/Modules/Administration/Infrastructure/Configuration/Quartz/QuartzStartup.cs index bb518921..8677faea 100644 --- a/src/Modules/Administration/Infrastructure/Configuration/Quartz/QuartzStartup.cs +++ b/src/Modules/Administration/Infrastructure/Configuration/Quartz/QuartzStartup.cs @@ -30,7 +30,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler @@ -42,7 +42,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler @@ -54,7 +54,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler.ScheduleJob(processInternalCommandsJob, triggerCommandsProcessing).GetAwaiter().GetResult(); diff --git a/src/Modules/Administration/Tests/IntegrationTests/SeedWork/TestBase.cs b/src/Modules/Administration/Tests/IntegrationTests/SeedWork/TestBase.cs index f31267c0..c720c9a8 100644 --- a/src/Modules/Administration/Tests/IntegrationTests/SeedWork/TestBase.cs +++ b/src/Modules/Administration/Tests/IntegrationTests/SeedWork/TestBase.cs @@ -54,7 +54,8 @@ public async Task BeforeEachTest() AdministrationStartup.Initialize( ConnectionString, ExecutionContext, - Logger); + Logger, + null); AdministrationModule = new AdministrationModule(); } diff --git a/src/Modules/Meetings/Application/Configuration/Commands/InternalCommandBase.cs b/src/Modules/Meetings/Application/Configuration/Commands/InternalCommandBase.cs index 80319d74..fe490702 100644 --- a/src/Modules/Meetings/Application/Configuration/Commands/InternalCommandBase.cs +++ b/src/Modules/Meetings/Application/Configuration/Commands/InternalCommandBase.cs @@ -12,4 +12,19 @@ protected InternalCommandBase(Guid id) this.Id = id; } } + + public abstract class InternalCommandBase : ICommand + { + public Guid Id { get; } + + protected InternalCommandBase() + { + this.Id = Guid.NewGuid(); + } + + protected InternalCommandBase(Guid id) + { + this.Id = id; + } + } } \ No newline at end of file diff --git a/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommand.cs b/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommand.cs index 1fc72d07..3d7606d2 100644 --- a/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommand.cs +++ b/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommand.cs @@ -1,8 +1,9 @@ -using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; +using System; +using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; namespace CompanyName.MyMeetings.Modules.Meetings.Application.MeetingGroupProposals.ProposeMeetingGroup { - public class ProposeMeetingGroupCommand : CommandBase + public class ProposeMeetingGroupCommand : CommandBase { public ProposeMeetingGroupCommand(string name, string description, string locationCity, string locationCountryCode) { diff --git a/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommandHandler.cs b/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommandHandler.cs index b1496e7b..1721d19e 100644 --- a/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommandHandler.cs +++ b/src/Modules/Meetings/Application/MeetingGroupProposals/ProposeMeetingGroup/ProposeMeetingGroupCommandHandler.cs @@ -9,7 +9,7 @@ namespace CompanyName.MyMeetings.Modules.Meetings.Application.MeetingGroupProposals.ProposeMeetingGroup { - internal class ProposeMeetingGroupCommandHandler : ICommandHandler + internal class ProposeMeetingGroupCommandHandler : ICommandHandler { private readonly IMeetingGroupProposalRepository _meetingGroupProposalRepository; private readonly IMemberContext _memberContext; @@ -22,7 +22,7 @@ internal ProposeMeetingGroupCommandHandler( _memberContext = memberContext; } - public async Task Handle(ProposeMeetingGroupCommand request, CancellationToken cancellationToken) + public async Task Handle(ProposeMeetingGroupCommand request, CancellationToken cancellationToken) { var meetingGroupProposal = MeetingGroupProposal.ProposeNew( request.Name, @@ -32,7 +32,7 @@ public async Task Handle(ProposeMeetingGroupCommand request, CancellationT await _meetingGroupProposalRepository.AddAsync(meetingGroupProposal); - return new Unit(); + return meetingGroupProposal.Id.Value; } } } \ No newline at end of file diff --git a/src/Modules/Meetings/Infrastructure/Configuration/EventsBus/EventsBusModule.cs b/src/Modules/Meetings/Infrastructure/Configuration/EventsBus/EventsBusModule.cs index d29e6e0f..ebbdd4c9 100644 --- a/src/Modules/Meetings/Infrastructure/Configuration/EventsBus/EventsBusModule.cs +++ b/src/Modules/Meetings/Infrastructure/Configuration/EventsBus/EventsBusModule.cs @@ -6,11 +6,26 @@ namespace CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.E { internal class EventsBusModule : Autofac.Module { + private readonly IEventsBus _eventsBus; + + public EventsBusModule(IEventsBus eventsBus) + { + _eventsBus = eventsBus; + } + protected override void Load(ContainerBuilder builder) { - builder.RegisterType() + if (_eventsBus != null) + { + builder.RegisterInstance(_eventsBus).SingleInstance(); + } + else + { + builder.RegisterType() .As() .SingleInstance(); + + } } } } \ No newline at end of file diff --git a/src/Modules/Meetings/Infrastructure/Configuration/MeetingsStartup.cs b/src/Modules/Meetings/Infrastructure/Configuration/MeetingsStartup.cs index 79d7a211..2fd3eb82 100644 --- a/src/Modules/Meetings/Infrastructure/Configuration/MeetingsStartup.cs +++ b/src/Modules/Meetings/Infrastructure/Configuration/MeetingsStartup.cs @@ -1,6 +1,7 @@ using Autofac; using CompanyName.MyMeetings.BuildingBlocks.Application; using CompanyName.MyMeetings.BuildingBlocks.Infrastructure.Emails; +using CompanyName.MyMeetings.BuildingBlocks.Infrastructure.EventBus; using CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.Authentication; using CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.DataAccess; using CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.Email; @@ -23,11 +24,17 @@ public static void Initialize( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, - EmailsConfiguration emailsConfiguration) + EmailsConfiguration emailsConfiguration, + IEventsBus eventsBus) { var moduleLogger = logger.ForContext("Module", "Meetings"); - ConfigureCompositionRoot(connectionString, executionContextAccessor, moduleLogger, emailsConfiguration); + ConfigureCompositionRoot( + connectionString, + executionContextAccessor, + moduleLogger, + emailsConfiguration, + eventsBus); QuartzStartup.Initialize(moduleLogger); @@ -38,7 +45,8 @@ private static void ConfigureCompositionRoot( string connectionString, IExecutionContextAccessor executionContextAccessor, ILogger logger, - EmailsConfiguration emailsConfiguration) + EmailsConfiguration emailsConfiguration, + IEventsBus eventsBus) { var containerBuilder = new ContainerBuilder(); @@ -48,7 +56,7 @@ private static void ConfigureCompositionRoot( containerBuilder.RegisterModule(new DataAccessModule(connectionString, loggerFactory)); containerBuilder.RegisterModule(new ProcessingModule()); - containerBuilder.RegisterModule(new EventsBusModule()); + containerBuilder.RegisterModule(new EventsBusModule(eventsBus)); containerBuilder.RegisterModule(new MediatorModule()); containerBuilder.RegisterModule(new AuthenticationModule()); containerBuilder.RegisterModule(new OutboxModule()); diff --git a/src/Modules/Meetings/Infrastructure/Configuration/Processing/InternalCommands/ProcessInternalCommandsCommandHandler.cs b/src/Modules/Meetings/Infrastructure/Configuration/Processing/InternalCommands/ProcessInternalCommandsCommandHandler.cs index f3e83a9d..a97d30a1 100644 --- a/src/Modules/Meetings/Infrastructure/Configuration/Processing/InternalCommands/ProcessInternalCommandsCommandHandler.cs +++ b/src/Modules/Meetings/Infrastructure/Configuration/Processing/InternalCommands/ProcessInternalCommandsCommandHandler.cs @@ -37,7 +37,7 @@ public async Task Handle(ProcessInternalCommandsCommand command, Cancellat foreach (var internalCommand in internalCommandsList) { Type type = Assemblies.Application.GetType(internalCommand.Type); - var commandToProcess = JsonConvert.DeserializeObject(internalCommand.Data, type) as ICommand; + dynamic commandToProcess = JsonConvert.DeserializeObject(internalCommand.Data, type); await CommandsExecutor.Execute(commandToProcess); } diff --git a/src/Modules/Meetings/Infrastructure/Configuration/Processing/ProcessingModule.cs b/src/Modules/Meetings/Infrastructure/Configuration/Processing/ProcessingModule.cs index b2ae2d26..b1f99cbe 100644 --- a/src/Modules/Meetings/Infrastructure/Configuration/Processing/ProcessingModule.cs +++ b/src/Modules/Meetings/Infrastructure/Configuration/Processing/ProcessingModule.cs @@ -33,9 +33,17 @@ protected override void Load(ContainerBuilder builder) typeof(UnitOfWorkCommandHandlerDecorator<>), typeof(ICommandHandler<>)); + builder.RegisterGenericDecorator( + typeof(UnitOfWorkCommandHandlerWithResultDecorator<,>), + typeof(ICommandHandler<,>)); + builder.RegisterGenericDecorator( typeof(ValidationCommandHandlerDecorator<>), - typeof(ICommandHandler<>)); + typeof(ICommandHandler<>)); + + builder.RegisterGenericDecorator( + typeof(ValidationCommandHandlerWithResultDecorator<,>), + typeof(ICommandHandler<,>)); builder.RegisterGenericDecorator( typeof(LoggingCommandHandlerDecorator<>), diff --git a/src/Modules/Meetings/Infrastructure/Configuration/Processing/UnitOfWorkCommandHandlerWithResultDecorator.cs b/src/Modules/Meetings/Infrastructure/Configuration/Processing/UnitOfWorkCommandHandlerWithResultDecorator.cs new file mode 100644 index 00000000..037b05ac --- /dev/null +++ b/src/Modules/Meetings/Infrastructure/Configuration/Processing/UnitOfWorkCommandHandlerWithResultDecorator.cs @@ -0,0 +1,46 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using CompanyName.MyMeetings.BuildingBlocks.Domain; +using CompanyName.MyMeetings.Modules.Meetings.Application.Configuration.Commands; +using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; +using Microsoft.EntityFrameworkCore; + +namespace CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.Processing +{ + internal class UnitOfWorkCommandHandlerWithResultDecorator : ICommandHandler where T : ICommand + { + private readonly ICommandHandler _decorated; + private readonly IUnitOfWork _unitOfWork; + private readonly MeetingsContext _meetingsContext; + + public UnitOfWorkCommandHandlerWithResultDecorator( + ICommandHandler decorated, + IUnitOfWork unitOfWork, + MeetingsContext meetingsContext) + { + _decorated = decorated; + _unitOfWork = unitOfWork; + _meetingsContext = meetingsContext; + } + + public async Task Handle(T command, CancellationToken cancellationToken) + { + var result = await this._decorated.Handle(command, cancellationToken); + + if (command is InternalCommandBase) + { + var internalCommand = await _meetingsContext.InternalCommands.FirstOrDefaultAsync(x => x.Id == command.Id, cancellationToken: cancellationToken); + + if (internalCommand != null) + { + internalCommand.ProcessedDate = DateTime.UtcNow; + } + } + + await this._unitOfWork.CommitAsync(cancellationToken); + + return result; + } + } +} \ No newline at end of file diff --git a/src/Modules/Meetings/Infrastructure/Configuration/Processing/ValidationCommandHandlerWithResultDecorator.cs b/src/Modules/Meetings/Infrastructure/Configuration/Processing/ValidationCommandHandlerWithResultDecorator.cs new file mode 100644 index 00000000..56d8717f --- /dev/null +++ b/src/Modules/Meetings/Infrastructure/Configuration/Processing/ValidationCommandHandlerWithResultDecorator.cs @@ -0,0 +1,41 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using CompanyName.MyMeetings.BuildingBlocks.Application; +using CompanyName.MyMeetings.Modules.Meetings.Application.Configuration.Commands; +using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; +using FluentValidation; + +namespace CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration.Processing +{ + internal class ValidationCommandHandlerWithResultDecorator : ICommandHandler where T : ICommand + { + private readonly IList> _validators; + private readonly ICommandHandler _decorated; + + public ValidationCommandHandlerWithResultDecorator( + IList> validators, + ICommandHandler decorated) + { + this._validators = validators; + _decorated = decorated; + } + + public Task Handle(T command, CancellationToken cancellationToken) + { + var errors = _validators + .Select(v => v.Validate(command)) + .SelectMany(result => result.Errors) + .Where(error => error != null) + .ToList(); + + if (errors.Any()) + { + throw new InvalidCommandException(errors.Select(x => x.ErrorMessage).ToList()); + } + + return _decorated.Handle(command, cancellationToken); + } + } +} \ No newline at end of file diff --git a/src/Modules/Meetings/Infrastructure/Configuration/Quartz/QuartzStartup.cs b/src/Modules/Meetings/Infrastructure/Configuration/Quartz/QuartzStartup.cs index 79b6d1fb..13c200ae 100644 --- a/src/Modules/Meetings/Infrastructure/Configuration/Quartz/QuartzStartup.cs +++ b/src/Modules/Meetings/Infrastructure/Configuration/Quartz/QuartzStartup.cs @@ -30,7 +30,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler @@ -42,7 +42,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler @@ -54,7 +54,7 @@ internal static void Initialize(ILogger logger) TriggerBuilder .Create() .StartNow() - .WithCronSchedule("0/15 * * ? * *") + .WithCronSchedule("0/2 * * ? * *") .Build(); scheduler.ScheduleJob(processInternalCommandsJob, triggerCommandsProcessing).GetAwaiter().GetResult(); diff --git a/src/Tests/IntegrationTests/CompanyName.MyMeetings.IntegrationTests.csproj b/src/Tests/IntegrationTests/CompanyName.MyMeetings.IntegrationTests.csproj new file mode 100644 index 00000000..2df04932 --- /dev/null +++ b/src/Tests/IntegrationTests/CompanyName.MyMeetings.IntegrationTests.csproj @@ -0,0 +1,26 @@ + + + + netcoreapp3.1 + + false + + + + + + + + + + + + + + + + + + + + diff --git a/src/Tests/IntegrationTests/CreateMeetingGroup/CreateMeetingGroupTests.cs b/src/Tests/IntegrationTests/CreateMeetingGroup/CreateMeetingGroupTests.cs new file mode 100644 index 00000000..c36cddef --- /dev/null +++ b/src/Tests/IntegrationTests/CreateMeetingGroup/CreateMeetingGroupTests.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using CompanyName.MyMeetings.IntegrationTests.SeedWork; +using CompanyName.MyMeetings.Modules.Administration.Application.Contracts; +using CompanyName.MyMeetings.Modules.Administration.Application.MeetingGroupProposals.AcceptMeetingGroupProposal; +using CompanyName.MyMeetings.Modules.Administration.Application.MeetingGroupProposals.GetMeetingGroupProposal; +using CompanyName.MyMeetings.Modules.Administration.Domain.MeetingGroupProposals; +using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; +using CompanyName.MyMeetings.Modules.Meetings.Application.MeetingGroupProposals.ProposeMeetingGroup; +using CompanyName.MyMeetings.Modules.Meetings.Application.MeetingGroups.GetAllMeetingGroups; +using NUnit.Framework; + +namespace CompanyName.MyMeetings.IntegrationTests.CreateMeetingGroup +{ + public class CreateMeetingGroupTests : TestBase + { + [Test] + public async Task CreateMeetingGroupScenario_WhenProposalIsAccepted() + { + var meetingGroupId = await MeetingsModule.ExecuteCommandAsync( + new ProposeMeetingGroupCommand("Name", + "Description", + "Location", + "PL")); + + AssertEventually( + new GetMeetingGroupProposalFromAdministrationProbe(meetingGroupId, AdministrationModule), + 10000); + + await AdministrationModule.ExecuteCommandAsync(new AcceptMeetingGroupProposalCommand(meetingGroupId)); + + AssertEventually( + new GetCreatedMeetingGroupFromMeetingsProbe(meetingGroupId, MeetingsModule), + 15000); + } + + private class GetCreatedMeetingGroupFromMeetingsProbe : IProbe + { + private readonly Guid _expectedMeetingGroupId; + + private readonly IMeetingsModule _meetingsModule; + + private List _allMeetingGroups; + + public GetCreatedMeetingGroupFromMeetingsProbe( + Guid expectedMeetingGroupId, + IMeetingsModule meetingsModule) + { + _expectedMeetingGroupId = expectedMeetingGroupId; + _meetingsModule = meetingsModule; + } + + public bool IsSatisfied() + { + return _allMeetingGroups != null && + _allMeetingGroups.Any(x => x.Id == _expectedMeetingGroupId); + } + + public async Task SampleAsync() + { + _allMeetingGroups = await _meetingsModule.ExecuteQueryAsync(new GetAllMeetingGroupsQuery()); + } + + public string DescribeFailureTo() + => $"Meeting group with ID: {_expectedMeetingGroupId} is not created"; + } + + private class GetMeetingGroupProposalFromAdministrationProbe : IProbe + { + private readonly Guid _expectedMeetingGroupProposalId; + + private MeetingGroupProposalDto _meetingGroupProposal; + + private readonly IAdministrationModule _administrationModule; + + public GetMeetingGroupProposalFromAdministrationProbe(Guid expectedMeetingGroupProposalId, IAdministrationModule administrationModule) + { + _expectedMeetingGroupProposalId = expectedMeetingGroupProposalId; + _administrationModule = administrationModule; + } + + public bool IsSatisfied() + { + if (_meetingGroupProposal == null) + { + return false; + } + + if (_meetingGroupProposal.Id == _expectedMeetingGroupProposalId && + _meetingGroupProposal.StatusCode == MeetingGroupProposalStatus.ToVerify.Value) + { + return true; + } + + return false; + } + + public async Task SampleAsync() + { + try + { + _meetingGroupProposal = + await _administrationModule.ExecuteQueryAsync( + new GetMeetingGroupProposalQuery(_expectedMeetingGroupProposalId)); + } + catch + { + // ignored + } + } + + public string DescribeFailureTo() + => $"Meeting group proposal with ID: {_expectedMeetingGroupProposalId} to verification not created"; + } + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/AssertErrorException.cs b/src/Tests/IntegrationTests/SeedWork/AssertErrorException.cs new file mode 100644 index 00000000..98a88c2e --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/AssertErrorException.cs @@ -0,0 +1,12 @@ +using System; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public class AssertErrorException : Exception + { + public AssertErrorException(string message) : base(message) + { + + } + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/ExecutionContextMock.cs b/src/Tests/IntegrationTests/SeedWork/ExecutionContextMock.cs new file mode 100644 index 00000000..f7e42274 --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/ExecutionContextMock.cs @@ -0,0 +1,16 @@ +using System; +using CompanyName.MyMeetings.BuildingBlocks.Application; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public class ExecutionContextMock : IExecutionContextAccessor + { + public ExecutionContextMock(Guid userId) + { + UserId = userId; + } + public Guid UserId { get; } + public Guid CorrelationId { get; } + public bool IsAvailable { get; } + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/IProbe.cs b/src/Tests/IntegrationTests/SeedWork/IProbe.cs new file mode 100644 index 00000000..7b3adb1c --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/IProbe.cs @@ -0,0 +1,13 @@ +using System.Threading.Tasks; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public interface IProbe + { + bool IsSatisfied(); + + Task SampleAsync(); + + string DescribeFailureTo(); + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/Poller.cs b/src/Tests/IntegrationTests/SeedWork/Poller.cs new file mode 100644 index 00000000..bbabc921 --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/Poller.cs @@ -0,0 +1,37 @@ +using System.Threading; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public class Poller + { + private readonly int _timeoutMillis; + + private readonly int _pollDelayMillis; + + public Poller(int timeoutMillis) + { + _timeoutMillis = timeoutMillis; + _pollDelayMillis = 1000; + } + + public void Check(IProbe probe) + { + var timeout = new Timeout(_timeoutMillis); + while (!probe.IsSatisfied()) + { + if (timeout.HasTimedOut()) + { + throw new AssertErrorException(DescribeFailureOf(probe)); + } + + Thread.Sleep(_pollDelayMillis); + probe.SampleAsync(); + } + } + + private static string DescribeFailureOf(IProbe probe) + { + return probe.DescribeFailureTo(); + } + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/TestBase.cs b/src/Tests/IntegrationTests/SeedWork/TestBase.cs new file mode 100644 index 00000000..cdb8f9f6 --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/TestBase.cs @@ -0,0 +1,117 @@ +using System; +using System.Data; +using System.Data.SqlClient; +using System.Threading.Tasks; +using CompanyName.MyMeetings.BuildingBlocks.Application.Emails; +using CompanyName.MyMeetings.BuildingBlocks.Domain; +using CompanyName.MyMeetings.BuildingBlocks.EventBus; +using CompanyName.MyMeetings.BuildingBlocks.Infrastructure.Emails; +using CompanyName.MyMeetings.BuildingBlocks.Infrastructure.EventBus; +using CompanyName.MyMeetings.Modules.Administration.Application.Contracts; +using CompanyName.MyMeetings.Modules.Administration.Infrastructure; +using CompanyName.MyMeetings.Modules.Administration.Infrastructure.Configuration; +using CompanyName.MyMeetings.Modules.Meetings.Application.Contracts; +using CompanyName.MyMeetings.Modules.Meetings.Infrastructure; +using CompanyName.MyMeetings.Modules.Meetings.Infrastructure.Configuration; +using Dapper; +using NSubstitute; +using NUnit.Framework; +using Serilog; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public class TestBase + { + protected string ConnectionString; + + protected ILogger Logger; + + protected IAdministrationModule AdministrationModule; + + protected IMeetingsModule MeetingsModule; + + protected IEmailSender EmailSender; + + protected ExecutionContextMock ExecutionContext; + + protected IEventsBus EventsBus; + + + [SetUp] + public async Task BeforeEachTest() + { + const string connectionStringEnvironmentVariable = + "ASPNETCORE_MyMeetings_IntegrationTests_ConnectionString"; + ConnectionString = Environment.GetEnvironmentVariable(connectionStringEnvironmentVariable, EnvironmentVariableTarget.Machine); + if (ConnectionString == null) + { + throw new ApplicationException( + $"Define connection string to integration tests database using environment variable: {connectionStringEnvironmentVariable}"); + } + + using (var sqlConnection = new SqlConnection(ConnectionString)) + { + await ClearDatabase(sqlConnection); + } + + Logger = Substitute.For(); + EmailSender = Substitute.For(); + ExecutionContext = new ExecutionContextMock(Guid.NewGuid()); + + EventsBus = new InMemoryEventBusClient(Logger); + + AdministrationStartup.Initialize( + ConnectionString, + ExecutionContext, + Logger, + EventsBus); + + MeetingsStartup.Initialize( + ConnectionString, + ExecutionContext, + Logger, + new EmailsConfiguration("from@email.com"), + EventsBus); + + AdministrationModule = new AdministrationModule(); + MeetingsModule = new MeetingsModule(); + } + + private static async Task ClearDatabase(IDbConnection connection) + { + const string sql = "DELETE FROM [administration].[InboxMessages] " + + "DELETE FROM [administration].[InternalCommands] " + + "DELETE FROM [administration].[OutboxMessages] " + + "DELETE FROM [administration].[MeetingGroupProposals] " + + "DELETE FROM [administration].[Members] " + + "DELETE FROM [meetings].[InboxMessages] " + + "DELETE FROM [meetings].[InternalCommands] " + + "DELETE FROM [meetings].[OutboxMessages] " + + "DELETE FROM [meetings].[MeetingAttendees] " + + "DELETE FROM [meetings].[MeetingGroupMembers] " + + "DELETE FROM [meetings].[MeetingGroupProposals] " + + "DELETE FROM [meetings].[MeetingGroups] " + + "DELETE FROM [meetings].[MeetingNotAttendees] " + + "DELETE FROM [meetings].[Meetings] " + + "DELETE FROM [meetings].[MeetingWaitlistMembers] " + + "DELETE FROM [meetings].[Members] "; + + await connection.ExecuteScalarAsync(sql); + } + + protected static void AssertBrokenRule(AsyncTestDelegate testDelegate) where TRule : class, IBusinessRule + { + var message = $"Expected {typeof(TRule).Name} broken rule"; + var businessRuleValidationException = Assert.CatchAsync(testDelegate, message); + if (businessRuleValidationException != null) + { + Assert.That(businessRuleValidationException.BrokenRule, Is.TypeOf(), message); + } + } + + protected static void AssertEventually(IProbe probe, int timeout) + { + new Poller(timeout).Check(probe); + } + } +} \ No newline at end of file diff --git a/src/Tests/IntegrationTests/SeedWork/Timeout.cs b/src/Tests/IntegrationTests/SeedWork/Timeout.cs new file mode 100644 index 00000000..e95bbfe8 --- /dev/null +++ b/src/Tests/IntegrationTests/SeedWork/Timeout.cs @@ -0,0 +1,19 @@ +using System; + +namespace CompanyName.MyMeetings.IntegrationTests.SeedWork +{ + public class Timeout + { + private readonly DateTime _endTime; + + public Timeout(int duration) + { + this._endTime = DateTime.Now.AddMilliseconds(duration); + } + + public bool HasTimedOut() + { + return DateTime.Now > _endTime; + } + } +}