Esempio n. 1
0
        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)));
 }