public void ScriptRunnerCorrectlyConvertsScriptsWhenCalledMultipleTimes([Frozen] IScriptEngine engine, ScriptRunner sut, InlineScriptSource[] sources)
        {
            var scriptBlock = new ScriptBlock(sources);

            var expected = sources.Select(s => new Script(s.Name, s.ScriptText));

            sut.RunScripts(scriptBlock);
            sut.RunScripts(scriptBlock);

            Mock.Get(engine).Verify(x => x.Execute(It.Is<IEnumerable<Script>>(actual => actual.EnumerableEquals(expected))), Times.Exactly(2));
        }
        public void ScriptRunnerCorrectlyConvertsInlineScript(string scriptName, string scriptSource, [Frozen] IScriptEngine engine, ScriptRunner sut)
        {
            var scriptBlock = ScriptBlock.Empty.AppendScript(new InlineScriptSource(scriptName, scriptSource));

            var expected = new[]
            {
                new Script(scriptName, scriptSource)
            };

            sut.RunScripts(scriptBlock);

            Mock.Get(engine).Verify(x => x.Execute(It.Is<IEnumerable<Script>>(actual => actual.EnumerableEquals(expected))));
        }