public async Task RunCommandAsyncJavaScriptCommand() { //Arrange var dbConnection = new UnitTestDbConnection(); Database.SetInitializer(new CreateFreshDbInitializer()); var adapterManager = new StubIAdapterManager { FindZvsAdapterGuid = adapterGuid => new StubZvsAdapter { IsEnabled = true, ProcessDeviceTypeCommandAsyncDeviceTypeDeviceDeviceTypeCommandString = (adapterDevice, command, argument, argument2) => Task.FromResult(0) } }; var logEntries = new List <LogEntry>(); var log = new StubIFeedback <LogEntry> { ReportAsyncT0CancellationToken = (e, c) => { Console.WriteLine(e); logEntries.Add(e); return(Task.FromResult(0)); } }; var cts = new CancellationTokenSource(); var commmandProcessor = new CommandProcessor(adapterManager, dbConnection, log); using (var context = new ZvsContext(dbConnection)) { var jsCommand = new JavaScriptCommand() { Script = "logInfo('test');" }; context.Commands.Add(jsCommand); await context.SaveChangesAsync(new CancellationToken()); //Act var result = await commmandProcessor.RunCommandAsync(jsCommand.Id, "1", "", cts.Token); Console.WriteLine(result.Message); //Assert Assert.IsFalse(result.HasError, result.Message); Assert.IsTrue(logEntries.Any(o => o.Message == "test")); } }
internal async Task <Result> ExecuteJavaScriptCommandAsync(JavaScriptCommand command, string argument, string argument2, CancellationToken cancellationToken) { var javaScriptRunner = new JavaScriptRunner(Log, this, EntityContextConnection); return(await javaScriptRunner.ExecuteScriptAsync(command.Script, cancellationToken)); }