public void JavaScriptModuleRegistry_InvalidModule_Throws() { var registry = new JavaScriptModuleRegistry.Builder().Build(); var reactInstance = new MockReactInstance(); AssertEx.Throws <InvalidOperationException>(() => registry.GetJavaScriptModule <TestJavaScriptModule>(reactInstance)); }
public void JavaScriptModuleRegistry_Invoke() { var registry = new JavaScriptModuleRegistry.Builder() .Add <RCTEventEmitter>() .Add <AppRegistry>() .Add <TestJavaScriptModule>() .Build(); var are = new AutoResetEvent(false); var modules = new List <string>(); var methods = new List <string>(); var argsList = new List <JArray>(); var reactInstance = new MockReactInstance((mod, met, args, tracingName) => { modules.Add(mod); methods.Add(met); argsList.Add(args); are.Set(); }); var module = registry.GetJavaScriptModule <TestJavaScriptModule>(reactInstance); module.Foo(42); are.WaitOne(); Assert.AreEqual(1, modules.Count); Assert.AreEqual(1, methods.Count); Assert.AreEqual(1, modules.Count); Assert.AreEqual("TestJavaScriptModule", modules[0]); Assert.AreEqual("Foo", methods[0]); Assert.AreEqual( JArray.FromObject(new[] { 42 }).ToString(Formatting.None), argsList[0].ToString(Formatting.None)); }