public void Will_create_default_script_if_missing() { var scriptRepo = new Mock <IScriptRepository>(); var scriptRepoGetScriptCalledNum = 0; scriptRepo .Setup(x => x.GetScriptByName(It.IsAny <string>())) .Returns(() => null) .Callback(() => scriptRepoGetScriptCalledNum++); var utilService = new Mock <IProcessingUtilService>(); var service = new RoslynScriptProcessingService(scriptRepo.Object, utilService.Object, new ScriptProcessingSettings() { GenerateDefaultScript = true }); var doc = CreateAddDocument(); var processed = service.Process(doc) as AddDocument; processed.Should().NotBeNull(); processed.Id.Should().Be(doc.Id); processed.Domain.Should().Be(doc.Domain); }
public void Will_use_cached_scripts() { var script = new Script() { Code = ResourceUtils.GetManifestString("Scripts.Data.RegexScript.cs"), Name = "RegexScript" }; var scriptRepo = new Mock <IScriptRepository>(); var scriptRepoGetScriptCalledNum = 0; scriptRepo .Setup(x => x.GetScriptByName(It.IsAny <string>())) .Returns(() => script) .Callback(() => scriptRepoGetScriptCalledNum++); var utilService = new Mock <IProcessingUtilService>(); var service = new RoslynScriptProcessingService(scriptRepo.Object, utilService.Object, new ScriptProcessingSettings()); var doc = CreateAddDocument(); var firstRun = 0L; for (int i = 0; i < 100; i++) { var timer = Stopwatch.StartNew(); var processed = service.Process(doc) as AddDocument; if (firstRun == 0) { firstRun = timer.ElapsedMilliseconds * 2; //for some margin.. } timer.Stop(); processed.Should().NotBeNull(); processed.Id.Should().Be(doc.Id); processed.Domain.Should().Be(doc.Domain); processed.GetFieldValue("magnus").Should().Be("magnus"); scriptRepoGetScriptCalledNum.Should().Be(1); } }
public void Will_throw_exception_if_script_missing() { var scriptRepo = new Mock <IScriptRepository>(); var scriptRepoGetScriptCalledNum = 0; scriptRepo .Setup(x => x.GetScriptByName(It.IsAny <string>())) .Returns(() => null) .Callback(() => scriptRepoGetScriptCalledNum++); var utilService = new Mock <IProcessingUtilService>(); var service = new RoslynScriptProcessingService(scriptRepo.Object, utilService.Object, new ScriptProcessingSettings() { GenerateDefaultScript = false }); Action invoke = () => service.Process(CreateAddDocument()); invoke.Should().Throw <ScriptMissingException>(); }