public void AssemblyModuleLoaderThrowsWhenNoAssembly()
 {
     Assert.Throws <ArgumentNullException>(() =>
     {
         var aml = new AssemblyModuleLoader(null);
     });
 }
        public void AssemblyModuleLoaderLoadsModules()
        {
            var script = @"
        import helloworld from 'hello_world';
        export default helloworld;
        ";

            using (var aml = new AssemblyModuleLoader(Assembly.GetExecutingAssembly()))
            {
                var baristaRuntime = GetRuntimeFactory(aml);

                using (var rt = baristaRuntime.CreateRuntime())
                {
                    using (var ctx = rt.CreateContext())
                    {
                        var result = ctx.EvaluateModule(script);

                        Assert.Equal("Hello, World!", result.ToString());
                    }
                }
            }
        }
        public void AssemblyModuleLoaderDoesntFindNonExistentModules()
        {
            var script = @"
        import helloworld from 'this_is_not_a_real_module_name';
        export default helloworld;
        ";

            using (var aml = new AssemblyModuleLoader(Assembly.GetExecutingAssembly()))
            {
                var baristaRuntime = GetRuntimeFactory(aml);

                using (var rt = baristaRuntime.CreateRuntime())
                {
                    using (var ctx = rt.CreateContext())
                    {
                        Assert.Throws <JsScriptException>(() =>
                        {
                            var result = ctx.EvaluateModule(script);
                        });
                    }
                }
            }
        }