public void TryCompleteInitialisation_InMemoryRepositories_InitialisesCorrectly()
        {
            // Arrange
            IServiceCollection services;
            IServiceProvider   serviceProvider;
            bool expected = true;
            bool actual;

            services = new ServiceCollection();
            services.AddLogging();
            services.AddValidationSubsystem();
            services.AddValidationInMemoryRepositories();
            serviceProvider = services.BuildServiceProvider();

            // Act
            var subsystem = ValidationSubsystem.StartInitialisation(serviceProvider);

            actual = subsystem.TryCompleteInitialisation(TimeSpan.FromSeconds(2));

            // Assert
            Assert.AreEqual(expected, actual);
        }
        public void TryCompleteInitialisation_FakeBlockingRepositories_InitialisationTimesOut()
        {
            // Arrange
            IServiceCollection services;
            IServiceProvider   serviceProvider;
            bool expected = false;
            bool actual;

            services = new ServiceCollection();
            services.AddLogging();
            services.AddValidationSubsystem();
            services.AddTransient <ICharacterSetRepository, Fakes.FakeBlockingCharacterSetRepository>();
            services.AddTransient <IDisallowedFragmentRepository, Fakes.FakeBlockingDisallowedFragmentRepository>();
            serviceProvider = services.BuildServiceProvider();

            // Act
            var subsystem = ValidationSubsystem.StartInitialisation(serviceProvider);

            actual = subsystem.TryCompleteInitialisation(TimeSpan.FromSeconds(2));

            // Assert
            Assert.AreEqual(expected, actual);
        }