public static IStateMonad GetStateMonad(
     IExternalProcessRunner externalProcessRunner,
     ITestLoggerFactory testLoggerFactory) => GetStateMonad(
     testLoggerFactory,
     externalProcessRunner,
     ConsoleAdapter.Instance
     );
        public static IStateMonad GetStateMonad(
            ITestLoggerFactory testLoggerFactory,
            IExternalProcessRunner externalProcessRunner,
            IConsole console)
        {
            var sclSettings = SettingsHelpers.CreateSCLSettings(
                new NuixSettings(
                    Constants.NuixConsoleExe,
                    new Version(8, 0),
                    true,
                    Constants.AllNuixFeatures
                    )
                );

            var sfs = StepFactoryStore.Create(
                sclSettings,
                Assembly.GetAssembly(typeof(IRubyScriptStep)) !
                );

            var fileSystem = new MockFileSystem(
                new Dictionary <string, MockFileData>()
            {
                { NuixConnectionHelper.NuixGeneralScriptName, "Ultimate Nuix Script" }
            },
                AppContext.BaseDirectory
                );

            var monad = new StateMonad(
                testLoggerFactory.CreateLogger("Test"),
                sclSettings,
                sfs,
                new ExternalContext(
                    externalProcessRunner,
                    console,
                    (ConnectorInjection.FileSystemKey, fileSystem)
                    ),
                new Dictionary <string, object>()
                );

            return(monad);
        }