public void Javascript_Error_Is_Raised() { var manager = new RuntimeManager(new ManualManagerSettings()); Assert.Throws<ScriptEngineException>(async () => await manager.ExecuteAsync("test", "Console.WriteLine('wrote this to the console');")); }
public async void Script_Returns_Engine() { var manager = new RuntimeManager(new ManualManagerSettings()); var engine = await manager.ExecuteAsync("test", "var i = 0; i++;"); Assert.AreEqual(1, engine.Script.i); }
public async void Compiled_Script_Is_Cached_By_Default() { var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync("test", "var i = 0; i++;"); CachedV8Script cached; manager.TryGetCached("test", out cached).ShouldBeTrue(); }
public void Uncached_Script_Is_Not_Cached() { var manager = new RuntimeManager(new ManualManagerSettings()); manager.Compile("test", "var i = 0; i++;", false); CachedV8Script cached; manager.TryGetCached("test", out cached).ShouldBeFalse(); }
public void Expired_Script_Is_Not_Returned() { var manager = new RuntimeManager(new ManualManagerSettings()); manager.Compile("test", "var i = 0; i++;", true, 1); Thread.Sleep(1000); CachedV8Script cached; manager.TryGetCached("test", out cached).ShouldBeFalse(); }
public async void Cached_Script_Shows_Cache_Hits() { var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync("test", "var i = 0; i++;"); await manager.ExecuteAsync("test", "var i = 0; i++;"); CachedV8Script cached; manager.TryGetCached("test", out cached); cached.CacheHits.ShouldBeGreaterThan(1); }
public async void Script_With_0_Timeout_Works() { var manager = new RuntimeManager(new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 }) { AddConsoleReference = true }; var script = "Console.WriteLine('Started:' + new Date().toJSON()); " + "var now = new Date().getTime(); " + "Console.WriteLine('Finished:' + new Date().toJSON());"; await manager.ExecuteAsync("test", script); }
public async void Script_With_String_Code_Is_Run() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync(new List<IncludeScript> { new IncludeScript { Code = "subject.Count = 10; subject.TestString = 'test string1';", ScriptId = "testScript" } }, new ExecutionOptions { HostObjects = new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string1"); }
public async void Script_With_Http_Reference_Is_Run() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync(new List<IncludeScript> { new IncludeScript { Uri = "https://gist.githubusercontent.com/eswann/66796164c1904b6135ea/raw/5491642164a45ae34af2926137950de3249d1e91/gistfile1.txt", ScriptId = "testScript" } }, new ExecutionOptions { HostObjects = new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string1"); }
public void Script_Exceeding_Timeout_Errs() { var manager = new RuntimeManager(new ManualManagerSettings{ScriptTimeoutMilliSeconds = 500}) { AddConsoleReference = true }; var script = "Console.WriteLine('Started:' + new Date().toJSON()); " + "var now = new Date().getTime(); while(new Date().getTime() < now + 1000){{ /* do nothing */ }}; " + "Console.WriteLine('Finished:' + new Date().toJSON());"; Assert.Throws<ScriptInterruptedException>(async () => await manager.ExecuteAsync("test", script)); }
public async void Script_With_Http_Include_Is_Included() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync("testscript", "subject.Count = 10; subject.TestString = x;", new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, Scripts = new List<IncludeScript> { new IncludeScript { Uri = "https://gist.githubusercontent.com/eswann/3215f3afff3a602c0f3a/raw/a9ace53fca80fdcdefba60c4f7bf803bf5239905/gistfile1.txt", ScriptId = "testScript2" } } }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string1"); }
public async void Script_With_File_Include_Is_Included() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync("testscript", "subject.Count = 10; subject.TestString = x;", new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, Scripts = new List<IncludeScript> {new IncludeScript {Uri = ".\\TestIncludeScript.js", ScriptId = "testScript2"}} }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string1"); }
public async void Require_Specified_As_Script_HttpPath_Path_Is_Used() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings {ScriptTimeoutMilliSeconds = 0}); await manager.ExecuteAsync("testscript", @"var testObject = require('https://gist.githubusercontent.com/eswann/76ecaba02dee33cf26b4/raw/bcafe0a389c84ba44d6ee1661e66b2213aa2ffa0/testRequire'); subject.Count = 10; subject.TestString = testObject.getText();", new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("testText"); }
public async void Require_Named_With_Explicit_Name_Succeeds() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 }); await manager.ExecuteAsync("testscript", @"var testObject = requireNamed('testRequire', 'https://gist.githubusercontent.com/eswann/3ff5ec2bcc63b7d2cdaa/raw/26e30f6a9761dbbe5634b2de1549c4a455b7a7d6/TestDiffNameRequire.js'); subject.Count = 10; subject.TestString = testObject.getText();", new ExecutionOptions { HostObjects = new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("testText"); }
public async void Included_Variables_Are_Accessible_Via_Script_Object() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); var engine = await manager.ExecuteAsync("testscript", "subject.Count = 10; subject.TestString = x;", new ExecutionOptions { HostObjects = new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, Scripts = new List<IncludeScript> { new IncludeScript { Uri = ".\\TestIncludeScript.js", ScriptId = "testScript2" } } }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string1"); engine.Script.x = "test string1"; }
public async void Script_With_Require_Is_Used() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings {ScriptTimeoutMilliSeconds = 0}); RequireManager.RegisterPackage(new RequiredPackage { PackageId = "testRequire", ScriptUri = ".\\TestRequire.js" }); await manager.ExecuteAsync("testscript", "var testObject = require('testRequire'); subject.Count = 10; subject.TestString = testObject.getText();", new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("testText"); }
public async void Multiple_Scripts_Types_Are_Run_First_To_Last() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync(new List<IncludeScript> { new IncludeScript {Uri = ".\\TestMainScript.js", ScriptId = "testScript"}, new IncludeScript {Code = "subject.TestString = 'test string3';", ScriptId = "testScript3"} }, new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("test string3"); }
public async void Multiple_Scripts_Types_Are_Run_First_To_Last() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync(new List<IncludeScript> { new IncludeScript {Uri = ".\\TestMainScript.js", ScriptId = "testScript"}, new IncludeScript {Code = "subject.TestString = 'test string3';", ScriptId = "testScript3"}, new IncludeScript {Uri = "https://gist.githubusercontent.com/eswann/62fc90e542f7697263db/raw/026c42ef0043a70a8c3b720e3026ecee9c691a06/gistfile1.txt", ScriptId = "TestScript4"} }, new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(20); subject.TestString.ShouldEqual("test string3"); }
public async void Script_Referencing_Specific_Type_Executes() { var manager = new RuntimeManager(new ManualManagerSettings()); var hostType = new HostType { Name = "MathStuff", Type = typeof(System.Math) }; var subject = new TestObject(); await manager.ExecuteAsync("test", "subject.Result = MathStuff.Pow(10,2);", new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, new List<HostType> { hostType }); subject.Result.ShouldEqual(100); }
public async void Basic_Http_Get_Headers_Are_Retrieved() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 }); PackageHelpers.RegisterRequestPackages(); manager.AddConsoleReference = true; var options = new ExecutionOptions(); options.HostObjects.Add(new HostObject { Name = "subject", Target = subject }); var scriptAwaiter = new ScriptAwaiter(); options.HostObjects.Add(new HostObject { Name = "scriptAwaiter", Target = scriptAwaiter }); var code = "var request = require('request');" + "request({url: 'http://api.icndb.com/jokes/random/1', json: true}," + " function (error, response, body) {subject.Response = response; subject.Headers = response.headers; scriptAwaiter.Callback();});"; await manager.ExecuteAsync("testScript", code, options); await scriptAwaiter.T; subject.Headers.Count().ShouldBeGreaterThan(0); }
/// <summary> /// Use to instance Generic event with parameter /// </summary> /// <param name="_genericEventInstance"></param> public FMOD.RESULT CreateGenericMonoEventParameterInstance(ref GenericEventMonoParameter _genericEventInstance) { _genericEventInstance.fmodEvent = RuntimeManager.CreateInstance(_genericEventInstance.eventPath); return(_genericEventInstance.fmodEvent.getParameter(_genericEventInstance.parameterName, out _genericEventInstance.eventParameter)); }
public async void Script_Can_Write_To_Console() { var manager = new RuntimeManager(new ManualManagerSettings()) {AddConsoleReference = true}; await manager.ExecuteAsync("test", "Console.WriteLine('wrote this to the console');"); }
private void UiLeftRight() { RuntimeManager.PlayOneShot(UiLR, transform.position); }
private void PlayJumpStartAudio(PlayerJumpStart playerJumpStart) { RuntimeManager.PlayOneShot(Jump, transform.position); }
private void PlayJumpSound() { RuntimeManager.PlayOneShot(m_JumpSound); }
private void UiSelect() { RuntimeManager.PlayOneShot(SelectPunch, transform.position); }
public async void Require_Named_With_Explicit_Name_Succeeds() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings { ScriptTimeoutMilliSeconds = 0 }); await manager.ExecuteAsync("testscript", @"var testObject = requireNamed('testRequire', '.\\TestDiffNameRequire.js'); subject.Count = 10; subject.TestString = testObject.getText();", new ExecutionOptions { HostObjects = new List<HostObject> { new HostObject { Name = "subject", Target = subject } }, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("testText"); }
public async void Require_Specified_As_Script_Local_Path_Is_Used() { var subject = new TestObject(); var manager = new RuntimeManager(new ManualManagerSettings {ScriptTimeoutMilliSeconds = 0}); await manager.ExecuteAsync("testscript", @"var testObject = require('.\\TestRequire.js'); subject.Count = 10; subject.TestString = testObject.getText();", new ExecutionOptions { HostObjects = new List<HostObject> {new HostObject {Name = "subject", Target = subject}}, }); subject.Name.ShouldEqual("Name"); subject.Count.ShouldEqual(10); subject.TestString.ShouldEqual("testText"); }
/// <summary> /// Attach an event to current transform /// </summary> /// <param name="_eventInstance">fmod event instance</param> /// <param name="_emitterTransform">transform to attach event</param> public void AttachSfx(EventInstance _eventInstance, Transform _emitterTransform) { RuntimeManager.AttachInstanceToGameObject(_eventInstance, _emitterTransform, GetComponent <Rigidbody2D>()); _eventInstance.set3DAttributes(RuntimeUtils.To3DAttributes(_emitterTransform.position)); }
public static void PlayOneShotAttached(EventType @event, GameObject location) { RuntimeManager.PlayOneShotAttached(AudioManager.Instance.EventPaths.GetPath(@event), location); }
/// <summary> /// /// </summary> /// <param name="_bus">Variable instance</param> /// <param name="_path">Channel path</param> public void SetBus(ref Bus _bus, string _path) { _bus = RuntimeManager.GetBus(m_busPrefix + _path); }
public void Play() { RuntimeManager.PlayOneShot(eventName); }
private void Awake() { _manager = FindObjectOfType <RuntimeManager>(); _input = GetComponentInChildren <TMP_InputField>(); _button = GetComponentInChildren <Button>(); }
// Start is called before the first frame update void Start() { drag = RuntimeManager.CreateInstance(dragPath); }
void Start() { LogoSfxEvent = RuntimeManager.CreateInstance(LogoSFX); Invoke("StartSFX", 3.3f); }
public void Can_download_windows_runtime() { RuntimeManager.DownloadRuntimeToDirectory(QmlNetConfig.QtBuildVersion, RuntimeTarget.Windows64, _tempDirectory); File.ReadAllText(Path.Combine(_tempDirectory, "version.txt")).Should().Be($"{QmlNetConfig.QtBuildVersion}-win-x64"); }
public void Init_OneShot(Vector3 position, float waitTime) { RuntimeManager.PlayOneShot(event_Ref, position); iconPosition = position; StartCoroutine(DrawIconForSeconds(waitTime)); }
private void HandlePlaySound(string soundID) => RuntimeManager.PlayOneShot("event:/" + soundID);
//////// = Enemy = ////////// public void PlayEnemyAttack(GameObject forFMOD) { RuntimeManager.PlayOneShotAttached(enemyAttack, forFMOD); }
private void HandlePlaySound(FMODEvent sound) => RuntimeManager.PlayOneShot(sound.Name);
private void Start() { timeHolder = Time.time + showTime; timeHolder2 = Time.time + fadeTime; RuntimeManager.PlayOneShot(DuckSFX); }
private void PlayLandingSound() { RuntimeManager.PlayOneShot(m_LandSound); m_NextStep = m_StepCycle + .5f; }
/// <summary> /// Returns an instance of the specified event, you will need to start, stop and release it manually /// </summary> public static EventInstance GetEventInstance(EventType @event) { return(RuntimeManager.CreateInstance(AudioManager.Instance.EventPaths.GetPath(@event))); }
public static void PlayOneShot2D(EventType @event) { RuntimeManager.PlayOneShot(AudioManager.Instance.EventPaths.GetPath(@event)); }
public static void PlayOneShot3D(EventType @event) { RuntimeManager.PlayOneShotAttached(AudioManager.Instance.EventPaths.GetPath(@event), AudioManager.Instance.gameObject); }
private void PlayJumpEndAudio(PlayerJumpEnd playerJumpEnd) { RuntimeManager.PlayOneShot(Land, transform.position); }
public async void Script_With_No_Subject_Can_Be_Executed() { var manager = new RuntimeManager(new ManualManagerSettings()); await manager.ExecuteAsync("test", "var i = 0; i++;"); }
private void Awake() { exitAmbiance = RuntimeManager.CreateInstance(exitAmbianceEvent); RuntimeManager.AttachInstanceToGameObject(exitAmbiance, GetComponent <Transform>(), GetComponent <Rigidbody>()); exitAmbiance.start(); }
/// <summary> /// Use to instance Generic event in game /// </summary> /// <param name="_genericEvent"></param> public void CreateGenericEnventInstance(ref GenericEvent _genericEvent) { _genericEvent.fmodEvent = RuntimeManager.CreateInstance(_genericEvent.eventPath); }
static void EnsureRuntimeManager() { if (runtimeManager == null) { runtimeManager = new RuntimeManager(); } }
/// <summary> /// /////////////////////////// = Sound And Music Methods = ///////////////////////////////////// /// /// Общедоступные методы для вызова их через синглтон. /// Здесь и надо создавать новые методы для новых звуков в игре. /// Заделены по зонам ответственности для более лёгкой навигаии. /// /// </summary> ///////////// = GAME = /////////////// public void PlayGamePSYCHO(GameObject forFMOD) { RuntimeManager.PlayOneShotAttached(psycho, forFMOD); }
public void PlayPlayerFootSteps(GameObject forFMOD) { RuntimeManager.PlayOneShotAttached(playerFootSteps, forFMOD); }
public void PlayPlayerJump(GameObject forFMOD) { RuntimeManager.PlayOneShotAttached(playerJump, forFMOD); }
void Awake() { panels = new PanelsManager(OptionPanel, MenuPanel, RuntimePanel, MessagePanel, ShadowPanel, HeartPanel, LoadPanel, OpeningPanel); runtime = new RuntimeManager(RuntimePanel.GetComponentsInChildren<Button>(true)); hearts = new HeartsManager(); load = new LoadManager(LoadPanel); menu = new MenuManager(MenuPanel); opening = new OpeningManager(OpeningPanel); background = gameObject.GetComponent<Image>(); }
public void Init_Ref() { event_Description = RuntimeManager.GetEventDescription(event_Ref); event_Description.getMaximumDistance(out maxDistance); event_Description.getMinimumDistance(out minDistance); }