public Empty Process(CacheFileRequest request) { var content = request.Content; var file = request.FilePath; var status = request.Status; switch (status) { case FileStatus.Changed: case FileStatus.Opened: _loader.ReloadSteps(content, file); break; case FileStatus.Created: if (!_loader.GetStepRegistry().IsFileCached(file)) { LoadFromDisk(file); } break; case FileStatus.Closed: LoadFromDisk(file); break; case FileStatus.Deleted: _loader.RemoveSteps(file); break; default: throw new ArgumentOutOfRangeException(); } return(new Empty()); }
public void ShouldProcessRequestWithDeleteStatus() { var mockAttributesLoader = new Mock <IAttributesLoader>(); mockAttributesLoader.Setup(x => x.GetRemovedAttributes()).Returns(new List <XAttribute>()); var loader = new StaticLoader(mockAttributesLoader.Object); const string content = "using Gauge.CSharp.Lib.Attributes;\n" + "namespace foobar\n" + "{\n" + " public class FooBar\n" + " {\n" + " [Step(\"goodbye\",\"adieu\", \"sayonara\")]\n" + " public void farewell()\n" + " {\n" + " }\n" + " }\n" + "}\n"; loader.LoadStepsFromText(content, "Foo.cs"); var processor = new CacheFileProcessor(loader); var request = new CacheFileRequest { FilePath = "Foo.cs", Status = CacheFileRequest.Types.FileStatus.Deleted }; Assert.True(loader.GetStepRegistry().ContainsStep("goodbye")); processor.Process(request); Assert.False(loader.GetStepRegistry().ContainsStep("goodbye")); }
public override Task <Empty> CacheFile(CacheFileRequest request, ServerCallContext context) { _factory.GetProcessor(Message.Types.MessageType.CacheFileRequest) .Process(new Message { CacheFileRequest = request }); return(Task.FromResult(new Empty())); }
public void ShouldProcessRequestWithDeleteStatus() { var mockLoader = new Mock <IStaticLoader>(); mockLoader.Setup(x => x.LoadImplementations()); mockLoader.Setup(x => x.RemoveSteps(fileName)).Verifiable(); var processor = new CacheFileProcessor(mockLoader.Object); var request = new CacheFileRequest { FilePath = fileName, Status = CacheFileRequest.Types.FileStatus.Deleted }; processor.Process(request); mockLoader.Verify(); mockLoader.VerifyNoOtherCalls(); }
public void ShouldProcessMessage() { var mockLoader = new Mock <IStaticLoader>(); mockLoader.Setup(x => x.LoadImplementations()); mockLoader.Setup(x => x.ReloadSteps(content, fileName)).Verifiable(); var processor = new CacheFileProcessor(mockLoader.Object); var request = new CacheFileRequest { Content = content, FilePath = fileName, Status = CacheFileRequest.Types.FileStatus.Opened }; processor.Process(request); mockLoader.Verify(); mockLoader.VerifyNoOtherCalls(); }
public override Task <Empty> CacheFile(CacheFileRequest request, ServerCallContext context) { return(Task.FromResult(this.cacheFileRequestProcessor.Process(request))); }
public override Task <Empty> CacheFile(CacheFileRequest request, ServerCallContext context) { return(_pool.Execute(1, () => this.cacheFileRequestProcessor.Process(request))); }