public void ShouldLoadFilesThatDoNotRequireTransform() { var jsEngine = new Mock <IJsEngine>(); jsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); var config = new Mock <IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List <string> { "First.js", "Second.js" }); config.Setup(x => x.LoadReact).Returns(true); var fileSystem = new Mock <IFileSystem>(); fileSystem.Setup(x => x.ReadAsString(It.IsAny <string>())).Returns <string>(path => "CONTENTS_" + path); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); factory.GetEngineForCurrentThread(); jsEngine.Verify(x => x.Execute("CONTENTS_First.js")); jsEngine.Verify(x => x.Execute("CONTENTS_Second.js")); }
public void ShouldCatchErrorsWhileLoadingScripts() { var config = new Mock <IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List <string> { "foo.js" }); config.Setup(x => x.LoadReact).Returns(true); var fileSystem = new Mock <IFileSystem>(); fileSystem.Setup(x => x.ReadAsString("foo.js")).Returns("FAIL PLZ"); var jsEngine = new Mock <IJsEngine>(); jsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.Execute("FAIL PLZ")).Throws(new JsRuntimeException("Fail") { LineNumber = 42, ColumnNumber = 911, }); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); var ex = Assert.Throws <ReactScriptLoadException>(() => factory.GetEngineForCurrentThread()); Assert.AreEqual("Error while loading \"foo.js\": Fail\r\nLine: 42\r\nColumn: 911", ex.Message); }
private JavaScriptEngineFactory CreateFactory() { var registration = new JavaScriptEngineFactory.Registration { Factory = () => { var mockJsEngine = new Mock<IJsEngine>(); mockJsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); return mockJsEngine.Object; }, Priority = 1 }; return new JavaScriptEngineFactory(new[] { registration }); }
private JavaScriptEngineFactory CreateFactory() { var registration = new JavaScriptEngineFactory.Registration { Factory = () => { var mockJsEngine = new Mock <IJsEngine>(); mockJsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); return(mockJsEngine.Object); }, Priority = 1 }; return(new JavaScriptEngineFactory(new[] { registration })); }
private JavaScriptEngineFactory CreateFactory() { var config = new Mock <IReactSiteConfiguration>(); var fileSystem = new Mock <IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => { var mockJsEngine = new Mock <IJsEngine>(); mockJsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); return(mockJsEngine.Object); }, Priority = 1 }; return(new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object)); }
private JavaScriptEngineFactory CreateFactory() { var config = new Mock<IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List<string>()); config.Setup(x => x.LoadReact).Returns(true); var fileSystem = new Mock<IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => { var mockJsEngine = new Mock<IJsEngine>(); mockJsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); return mockJsEngine.Object; }, Priority = 1 }; return new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); }
public void ShouldHandleLoadingExternalReactVersion() { var jsEngine = new Mock <IJsEngine>(); jsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.CallFunction <bool>("ReactNET_initReact")).Returns(true); var config = new Mock <IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List <string>()); config.Setup(x => x.LoadReact).Returns(false); var fileSystem = new Mock <IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); factory.GetEngineForCurrentThread(); jsEngine.Verify(x => x.CallFunction <bool>("ReactNET_initReact")); }
public void ShouldThrowIfReactVersionNotLoaded() { var jsEngine = new Mock <IJsEngine>(); jsEngine.Setup(x => x.Evaluate <int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.CallFunction <bool>("ReactNET_initReact")).Returns(false); var config = new Mock <IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List <string>()); config.Setup(x => x.LoadReact).Returns(false); var fileSystem = new Mock <IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); Assert.Throws <ReactNotInitialisedException>(() => { factory.GetEngineForCurrentThread(); }); }
public void ShouldLoadFilesThatDoNotRequireTransform() { var jsEngine = new Mock<IJsEngine>(); jsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); var config = new Mock<IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List<string> { "First.js", "Second.js" }); config.Setup(x => x.LoadReact).Returns(true); var fileSystem = new Mock<IFileSystem>(); fileSystem.Setup(x => x.ReadAsString(It.IsAny<string>())).Returns<string>(path => "CONTENTS_" + path); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); factory.GetEngineForCurrentThread(); jsEngine.Verify(x => x.Execute("CONTENTS_First.js")); jsEngine.Verify(x => x.Execute("CONTENTS_Second.js")); }
public void ShouldCatchErrorsWhileLoadingScripts() { var config = new Mock<IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List<string> {"foo.js"}); config.Setup(x => x.LoadReact).Returns(true); var fileSystem = new Mock<IFileSystem>(); fileSystem.Setup(x => x.ReadAsString("foo.js")).Returns("FAIL PLZ"); var jsEngine = new Mock<IJsEngine>(); jsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.Execute("FAIL PLZ")).Throws(new JsRuntimeException("Fail") { LineNumber = 42, ColumnNumber = 911, }); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); var ex = Assert.Throws<ReactScriptLoadException>(() => factory.GetEngineForCurrentThread()); Assert.AreEqual("Error while loading \"foo.js\": Fail\r\nLine: 42\r\nColumn: 911", ex.Message); }
public void ShouldThrowIfReactVersionNotLoaded() { var jsEngine = new Mock<IJsEngine>(); jsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.CallFunction<bool>("ReactNET_initReact")).Returns(false); var config = new Mock<IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List<string>()); config.Setup(x => x.LoadReact).Returns(false); var fileSystem = new Mock<IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); Assert.Throws<ReactNotInitialisedException>(() => { factory.GetEngineForCurrentThread(); }); }
public void ShouldHandleLoadingExternalReactVersion() { var jsEngine = new Mock<IJsEngine>(); jsEngine.Setup(x => x.Evaluate<int>("1 + 1")).Returns(2); jsEngine.Setup(x => x.CallFunction<bool>("ReactNET_initReact")).Returns(true); var config = new Mock<IReactSiteConfiguration>(); config.Setup(x => x.ScriptsWithoutTransform).Returns(new List<string>()); config.Setup(x => x.LoadReact).Returns(false); var fileSystem = new Mock<IFileSystem>(); var registration = new JavaScriptEngineFactory.Registration { Factory = () => jsEngine.Object, Priority = 1 }; var factory = new JavaScriptEngineFactory(new[] { registration }, config.Object, fileSystem.Object); factory.GetEngineForCurrentThread(); jsEngine.Verify(x => x.CallFunction<bool>("ReactNET_initReact")); }