public void ShouldNotStopAnyServicesWithWrongName()
        {
            // Assert
            string            hostedServiceName = "TestHostedServiceName";
            CancellationToken stopToken         = new CancellationToken();

            var deploymentServiceMock = Substitute.For <IDeploymentService>();

            deploymentServiceMock
            .CanExecute(Arg.Is <string>(hostedServiceName))
            .Returns(false);


            var strategies = new[] { deploymentServiceMock };

            var sut = new DeploymentServiceProvider(strategies);

            // Act
            sut.Stop("WrongServiceName");

            // Arrange
            deploymentServiceMock
            .DidNotReceive()
            .Stop();
        }
        public void ShouldStartCorrectServiceWithCorrectToken()
        {
            // Assert
            string            hostedServiceName = "TestHostedServiceName";
            CancellationToken stopToken         = new CancellationToken();

            var deploymentServiceMock = Substitute.For <IDeploymentService>();

            deploymentServiceMock
            .CanExecute(Arg.Is <string>(hostedServiceName))
            .Returns(true);


            var strategies = new[] { deploymentServiceMock };

            var sut = new DeploymentServiceProvider(strategies);

            // Act
            sut.Start(hostedServiceName);

            // Arrange
            deploymentServiceMock
            .Received(1)
            .Start(stopToken);
        }