public void ShouldCallInitializationManagerOnConstruction()
        {
            InitializationManager initializationManager = Substitute.For <InitializationManager>(new TestInitializationActionDiscoverer(), new InitializationActionExecutor());
            TestApplication       application           = new CustomTestApplication(initializationManager);

            initializationManager.Received().Initialize(0, Arg.Is <TestApplicationInitializationContext>(context => context.Application == application));
        }
        public void ShouldCallInitializationManagerOnStop()
        {
            InitializationManager initializationManager = Substitute.For <InitializationManager>(new TestInitializationActionDiscoverer(), new InitializationActionExecutor());
            TestApplication       application           = new CustomTestApplication(initializationManager);

            ((IRegisteredObject)application).Stop(false);

            initializationManager.Received().Cleanup(0, Arg.Is <TestApplicationInitializationContext>(context => context.Application == application));
        }