public JintScriptEngineTests() { var extensions = new IJintExtension[] { new DateTimeJintExtension(), new HttpJintExtension(httpClientFactory), new StringJintExtension(), new StringWordsJintExtension() }; var httpResponse = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent("{ \"key\": 42 }") }; var httpHandler = new MockupHttpHandler(httpResponse); A.CallTo(() => httpClientFactory.CreateClient(A <string> ._)) .Returns(new HttpClient(httpHandler)); var cache = new MemoryCache(Options.Create(new MemoryCacheOptions())); sut = new JintScriptEngine(cache, extensions) { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) }; }
public AssetsJintExtensionTests() { var services = new ServiceCollection() .AddSingleton(appProvider) .AddSingleton(assetFileStore) .AddSingleton(assetQuery) .AddSingleton(assetThumbnailGenerator) .BuildServiceProvider(); var extensions = new IJintExtension[] { new AssetsJintExtension(services) }; A.CallTo(() => appProvider.GetAppAsync(appId.Id, false, A<CancellationToken>._)) .Returns(Mocks.App(appId)); sut = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) }), extensions); }
public async Task Should_make_test_with_pre_query_script() { var ctx = new Context(Mocks.ApiUser(), Mocks.App(appId)); var(provider, id) = CreateSchema( query: @" ctx.data.test = { iv: ctx.custom }; replace()", queryPre: "ctx.custom = 123;"); var content = new ContentEntity { Data = new ContentData(), SchemaId = id }; var realScriptEngine = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(20), TimeoutExecution = TimeSpan.FromSeconds(100) })); var sut2 = new ScriptContent(realScriptEngine); await sut2.EnrichAsync(ctx, new[] { content }, provider, default); Assert.Equal(JsonValue.Create(123), content.Data["test"] !["iv"]);
public CounterJintExtensionTests() { var extensions = new IJintExtension[] { new CounterJintExtension(grainFactory) }; var cache = new MemoryCache(Options.Create(new MemoryCacheOptions())); sut = new JintScriptEngine(cache, extensions) { Timeout = TimeSpan.FromSeconds(1) }; }
public CounterJintExtensionTests() { var extensions = new IJintExtension[] { new CounterJintExtension(grainFactory) }; sut = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) }), extensions); }
public async Task Given_testScriptEngine_When_executing_script_Then_Script_can_manipulate_context() { IScriptEngine <Script> engine = new JintScriptEngine(); var script = new Script(@"context.calculator.Add(context.A, context.B)"); var context = new TestContext() { Calculator = new TestCalculator(), A = 1, B = 2 }; var environment = new ScriptEnvironment <TestContext>("1.0", "1.0", context); var executionRes = await engine.Run(script, environment); var result = executionRes.Should().BeOfType <ScriptExecutionSuccess>().Subject; result.Result.As <double>().Should().Be(3); }
public JintScriptEngineHelperTests() { var extensions = new IJintExtension[] { new DateTimeJintExtension(), new HttpJintExtension(httpClientFactory), new StringJintExtension() }; var cache = new MemoryCache(Options.Create(new MemoryCacheOptions())); sut = new JintScriptEngine(cache, extensions) { Timeout = TimeSpan.FromSeconds(1) }; }
public AssetsJintExtensionTests() { var services = new ServiceCollection() .AddSingleton(appProvider) .AddSingleton(assetQuery) .BuildServiceProvider(); var extensions = new IJintExtension[] { new AssetsJintExtension(services) }; A.CallTo(() => appProvider.GetAppAsync(appId.Id, false)) .Returns(Mocks.App(appId)); sut = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), extensions); }
public JintScriptEngineHelperTests() { var extensions = new IJintExtension[] { new DateTimeJintExtension(), new HttpJintExtension(httpClientFactory), new StringJintExtension(), new StringWordsJintExtension() }; sut = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) }), extensions); }
private void TestForRealCondition(string condition, Action <IRuleTriggerHandler, RuleContext> action) { var trigger = new CommentTrigger { Condition = condition }; var realScriptEngine = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) })); var handler = new CommentTriggerHandler(realScriptEngine, userResolver); action(handler, Context(trigger)); }
public DynamicContentWorkflowTests() { app = Mocks.App(appId); var simpleWorkflow = new Workflow( Status.Draft, new Dictionary <Status, WorkflowStep> { [Status.Draft] = new WorkflowStep( new Dictionary <Status, WorkflowTransition> { [Status.Published] = WorkflowTransition.Always }.ToReadonlyDictionary(), StatusColors.Draft), [Status.Published] = new WorkflowStep( new Dictionary <Status, WorkflowTransition> { [Status.Draft] = WorkflowTransition.Always }.ToReadonlyDictionary(), StatusColors.Published) }.ToReadonlyDictionary(), ReadonlyList.Create(simpleSchemaId.Id)); var workflows = Workflows.Empty.Set(workflow).Set(DomainId.NewGuid(), simpleWorkflow); A.CallTo(() => appProvider.GetAppAsync(appId.Id, false, default)) .Returns(app); A.CallTo(() => app.Workflows) .Returns(workflows); var scriptEngine = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), Options.Create(new JintScriptOptions { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) })); sut = new DynamicContentWorkflow(scriptEngine, appProvider); }
public ReferencesJintExtensionTests() { var services = new ServiceCollection() .AddSingleton(appProvider) .AddSingleton(contentQuery) .BuildServiceProvider(); var extensions = new IJintExtension[] { new ReferencesJintExtension(services) }; A.CallTo(() => appProvider.GetAppAsync(appId.Id, false)) .Returns(Mocks.App(appId)); sut = new JintScriptEngine(new MemoryCache(Options.Create(new MemoryCacheOptions())), extensions) { TimeoutScript = TimeSpan.FromSeconds(2), TimeoutExecution = TimeSpan.FromSeconds(10) }; }