/// <summary>
 /// Returns the code runner service.
 /// </summary>
 private ICodeRunnerService GetCodeRunnerService(
     IJsonSerializer serializer,
     MockDockerHost dockerHost)
 {
     return(new CodeRunnerService
            (
                serializer,
                GetMockDockerHostFactory(dockerHost).Object
            ));
 }
        /// <summary>
        /// Returns a mock docker host factory.
        /// </summary>
        private Mock <IDockerHostFactory> GetMockDockerHostFactory(
            MockDockerHost dockerHost)
        {
            var dockerHostFactory = new Mock <IDockerHostFactory>();

            dockerHostFactory
            .Setup(factory => factory.CreateDockerHost("ProjectRunner"))
            .Returns(dockerHost);

            return(dockerHostFactory);
        }
 /// <summary>
 /// Returns an instance of the project runner service.
 /// </summary>
 private IProjectRunnerService GetProjectRunnerService(
     MockDockerHost dockerHost,
     IProjectRunnerServiceConfig config = null,
     IProjectJobResultNotifier notifier = null,
     IJsonSerializer serializer         = null,
     ITimeProvider timeProvider         = null)
 {
     return(new ProjectRunnerService
            (
                new Mock <ILogger <ProjectRunnerService> >().Object,
                config ?? GetProjectRunnerConfig(),
                GetMockDockerHostFactory(dockerHost).Object,
                serializer ?? GetMockJsonSerializer().Object,
                notifier ?? GetMockNotifier(),
                timeProvider ?? GetMockTimeProvider().Object
            ));
 }