Example #1
0
        public async Task BuiltInModuleResolved()
        {
            var stopTokenSource = new CancellationTokenSource();
            var options         = new NodeServicesOptions
            {
                ApplicationStoppingToken = stopTokenSource.Token,
                ProjectPath = AppDomain.CurrentDomain.BaseDirectory,
                NodeInstanceOutputLogger = Mock.Of <ILogger>(),
            };

            options.UseSocketHosting();

            using (var services = NodeServicesFactory.CreateNodeServices(options))
                using (var builtinModule = new StringAsTempFile("exports.add = function(a, b) {return a+b;}", stopTokenSource.Token))
                {
                    await services.InvokeExportAsync <object>("builtin-modules-init", "initialize",
                                                              new Dictionary <string, string>()
                    {
                        { "builtin", builtinModule.FileName }
                    });

                    var result = await services.InvokeExportAsync <int>("builtin-modules-test", "test", 1, 2);

                    stopTokenSource.Cancel();

                    Assert.Equal(3, result);
                }
        }
Example #2
0
        public NodeBindingTests()
        {
            var options = new NodeServicesOptions
            {
                ApplicationStoppingToken = stopTokenSource.Token,
                ProjectPath = AppDomain.CurrentDomain.BaseDirectory,
                NodeInstanceOutputLogger = Mock.Of <ILogger>(),
                DebuggingPort            = 9000,
                LaunchWithDebugging      = true
            };

            options.UseSocketHosting();
            nodeServices = NodeServicesFactory.CreateNodeServices(options);

            rpcHost = new JsonRpcBindingHost(js => new LineDelimitedJsonConnection(js));
            rpcHost.Repository.AddBinding("test", new TestBound());

            var initTask = nodeServices.InvokeExportAsync <Stream>("binding-init", "initialize", rpcHost.Repository.Objects);

            this.initTask = initTask.ContinueWith(t => (rpcHost.Connection as LineDelimitedJsonConnection)?.Initialize(t.Result, t.Result));
        }