public void NativeModuleBase_Invocation_Promises_Reject() { var expectedMessage = "Foo bar baz"; var exception = new Exception(expectedMessage); var module = new PromiseNativeModule(() => { throw exception; }); module.Initialize(); var id = default(int); var args = default(Dictionary <string, string>[]); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject <Dictionary <string, string>[]>(); }); module.Methods[nameof(CallbackNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(43, id); Assert.AreEqual(1, args.Length); var d = args[0]; Assert.AreEqual(1, d.Count); var actualMessage = default(string); Assert.IsTrue(d.TryGetValue("message", out actualMessage)); Assert.AreEqual(expectedMessage, actualMessage); }
public void NativeModuleBase_Invocation_Promises_Reject() { var expectedMessage = "Foo bar baz"; var exception = new Exception(expectedMessage); var module = new PromiseNativeModule(() => { throw exception; }); module.Initialize(); var id = default(int); var args = default(JArray); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a; }); module.Methods[nameof(CallbackNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(43, id); Assert.AreEqual(1, args.Count); var error = args[0] as JObject; Assert.IsNotNull(error); Assert.AreEqual(4, error.Count); var actualMessage = error.Value <string>("message"); Assert.AreEqual(expectedMessage, actualMessage); }
public void NativeModuleBase_Invocation_Promises_IncorrectArgumentCount() { var module = new PromiseNativeModule(() => null); module.Initialize(); var nopCallback = new InvokeCallback((_, __) => { }); AssertEx.Throws <NativeArgumentsParseException>( () => module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(nopCallback, JArray.FromObject(new[] { 42 })), ex => Assert.AreEqual("jsArguments", ex.ParamName)); }
public void NativeModuleBase_Invocation_Promises_NullCallback() { var module = new PromiseNativeModule(() => null); module.Initialize(); var id = default(int); var args = default(List <object>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject <List <object> >(); }); module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(1, args.Count); Assert.IsNull(args[0]); }
public void NativeModuleBase_Invocation_Promises_IncorrectArgumentCount() { var module = new PromiseNativeModule(() => null); module.Initialize(); var id = default(int); var args = default(List <object>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject <List <object> >(); }); AssertEx.Throws <NativeArgumentsParseException>( () => module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42 })), ex => Assert.AreEqual("jsArguments", ex.ParamName)); }
public void NativeModuleBase_Invocation_Promises_Resolve() { var module = new PromiseNativeModule(() => 17); module.Initialize(); var id = default(int); var args = default(List <int>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject <List <int> >(); }); module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(42, id); Assert.IsTrue(args.SequenceEqual(new[] { 17 })); }
public void NativeModuleBase_Invocation_Promises_NullCallback() { var module = new PromiseNativeModule(() => null); module.Initialize(); var id = default(int); var args = default(List<object>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject<List<object>>(); }); module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(1, args.Count); Assert.IsNull(args[0]); }
public void NativeModuleBase_Invocation_Promises_Reject() { var expectedMessage = "Foo bar baz"; var exception = new Exception(expectedMessage); var module = new PromiseNativeModule(() => { throw exception; }); module.Initialize(); var id = default(int); var args = default(JArray); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a; }); module.Methods[nameof(CallbackNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(43, id); Assert.AreEqual(1, args.Count); var error = args[0] as JObject; Assert.IsNotNull(error); Assert.AreEqual(4, error.Count); var actualMessage = error.Value<string>("message"); Assert.AreEqual(expectedMessage, actualMessage); }
public void NativeModuleBase_Invocation_Promises_IncorrectArgumentCount() { var module = new PromiseNativeModule(() => null); module.Initialize(); var id = default(int); var args = default(List<object>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject<List<object>>(); }); AssertEx.Throws<NativeArgumentsParseException>( () => module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42 })), ex => Assert.AreEqual("jsArguments", ex.ParamName)); }
public void NativeModuleBase_Invocation_Promises_Resolve() { var module = new PromiseNativeModule(() => 17); module.Initialize(); var id = default(int); var args = default(List<int>); var reactInstance = new MockReactInstance((i, a) => { id = i; args = a.ToObject<List<int>>(); }); module.Methods[nameof(PromiseNativeModule.Foo)].Invoke(reactInstance, JArray.FromObject(new[] { 42, 43 })); Assert.AreEqual(42, id); Assert.IsTrue(args.SequenceEqual(new[] { 17 })); }