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);
        }
Exemple #2
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);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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]);
        }
Exemple #5
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));
        }
Exemple #6
0
        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 }));
        }