1+ using System . Collections . Generic ;
2+ using ClearScript . Manager . Loaders ;
3+ using NUnit . Framework ;
4+ using Should ;
5+
6+ namespace ClearScript . Manager . Http . Test
7+ {
8+ [ TestFixture ]
9+ public class WhenExecutingScriptWithRequire
10+ {
11+ [ SetUp ]
12+ public void Setup ( )
13+ {
14+ RequireManager . ClearPackages ( ) ;
15+ }
16+
17+ [ Test ]
18+ public async void Script_With_Require_Is_Used ( )
19+ {
20+ var subject = new TestObject ( ) ;
21+ var manager = new RuntimeManager ( new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 } ) ;
22+
23+ RequireManager . RegisterPackage ( new RequiredPackage { PackageId = "testRequire" , ScriptUri = "https://gist.githubusercontent.com/eswann/76ecaba02dee33cf26b4/raw/bcafe0a389c84ba44d6ee1661e66b2213aa2ffa0/testRequire" } ) ;
24+
25+ await
26+ manager . ExecuteAsync ( "testscript" ,
27+ "var testObject = require('testRequire'); subject.Count = 10; subject.TestString = testObject.getText();" ,
28+ new ExecutionOptions
29+ {
30+ HostObjects = new List < HostObject > { new HostObject { Name = "subject" , Target = subject } } ,
31+ } ) ;
32+
33+ subject . Name . ShouldEqual ( "Name" ) ;
34+ subject . Count . ShouldEqual ( 10 ) ;
35+ subject . TestString . ShouldEqual ( "testText" ) ;
36+ }
37+
38+ [ Test ]
39+ public async void Require_Specified_As_Script_HttpPath_Path_Is_Used ( )
40+ {
41+ var subject = new TestObject ( ) ;
42+ var manager = new RuntimeManager ( new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 } ) ;
43+
44+ await
45+ manager . ExecuteAsync ( "testscript" ,
46+ @"var testObject = require('https://gist.githubusercontent.com/eswann/76ecaba02dee33cf26b4/raw/bcafe0a389c84ba44d6ee1661e66b2213aa2ffa0/testRequire'); subject.Count = 10; subject.TestString = testObject.getText();" ,
47+ new ExecutionOptions
48+ {
49+ HostObjects = new List < HostObject > { new HostObject { Name = "subject" , Target = subject } } ,
50+ } ) ;
51+
52+ subject . Name . ShouldEqual ( "Name" ) ;
53+ subject . Count . ShouldEqual ( 10 ) ;
54+ subject . TestString . ShouldEqual ( "testText" ) ;
55+ }
56+
57+ [ Test ]
58+ public async void Require_Named_With_Explicit_Name_Succeeds ( )
59+ {
60+ var subject = new TestObject ( ) ;
61+ var manager = new RuntimeManager ( new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 } ) ;
62+
63+ await
64+ manager . ExecuteAsync ( "testscript" ,
65+ @"var testObject = requireNamed('testRequire', 'https://gist.githubusercontent.com/eswann/3ff5ec2bcc63b7d2cdaa/raw/26e30f6a9761dbbe5634b2de1549c4a455b7a7d6/TestDiffNameRequire.js'); subject.Count = 10; subject.TestString = testObject.getText();" ,
66+ new ExecutionOptions
67+ {
68+ HostObjects = new List < HostObject > { new HostObject { Name = "subject" , Target = subject } } ,
69+ } ) ;
70+
71+ subject . Name . ShouldEqual ( "Name" ) ;
72+ subject . Count . ShouldEqual ( 10 ) ;
73+ subject . TestString . ShouldEqual ( "testText" ) ;
74+ }
75+
76+ }
77+
78+
79+ public class TestObject
80+ {
81+ private string _name = "Name" ;
82+
83+ public string Name
84+ {
85+ get { return _name ; }
86+ set { _name = value ; }
87+ }
88+
89+ public string TestString { get ; set ; }
90+
91+ public int Count { get ; set ; }
92+ }
93+ }
0 commit comments