public void DoServerAnalysisUpdateBufferFileFound()
            {
                var source = new Source { Lines = new List<Line> { new Line { Id = 1, Val = "#include xpto;" }, new Line { Id = 2, Val = "#include ypto;" } } };

                this.vshelper.Expect(
                    mp => mp.CurrentSelectedDocumentLanguage())
                    .Return("c++");
                this.vshelper.Expect(
                    mp => mp.ActiveFileFullPath())
                    .Return("c:\\src\\file.cpp");
                this.vshelper.Expect(
                    mp => mp.ActiveSolutionPath())
                    .Return("c:\\src");
                this.service.Expect(
                    mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                    .Return(source);
                var element = new Resource { Date = new DateTime(2000, 1, 1), Key = "resourceKey", Lname = "file.cpp" };
                this.service.Expect(
                    mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                    .Return(new List<Resource> { element })
                    .Repeat.Times(3);
                this.service.Expect(
                    mp => mp.GetIssuesInResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything, Arg<bool>.Is.Anything))
                    .Return(new List<Issue> { new Issue { Component = "file.cpp", Line = 1, Status = "OPEN" }, new Issue { Component = "file.cpp", Line = 1, Status = "OPEN" } })
                    .Repeat.Once();
                this.pluginController.Expect(
                    mp => mp.GetPluginToRunResource(Arg<string>.Is.Anything))
                    .Return(this.plugin)
                    .Repeat.Once();

                this.plugin.Expect(mp => mp.IsSupported(Arg<string>.Is.Anything)).Return(true).Repeat.Once();
                this.plugin.Expect(mp => mp.GetServerAnalyserExtension()).Return(this.extension).Repeat.Once();
                this.extension.Expect(
                    mp =>
                    mp.GetResourceKey(
                        Arg<string>.Is.Anything,
                        Arg<VsProjectItem>.Is.Anything,
                        Arg<string>.Is.Anything,
                        Arg<string>.Is.Anything)).Return("key").Repeat.Once();

                var data = new ExtensionDataModel(this.service, this.vshelper, null);
                data.PluginController = this.pluginController;
                data.PluginRunningAnalysis = this.plugin;
                data.ServerAnalysis = ExtensionDataModel.AnalysesType.Server;
                data.AssociatedProject = new Resource { Key = "KEY", Lname = "file.cpp"};
                data.UpdateDataInEditor("c:\\src\\file.cpp", "#include xpto;\r\n#include ypto;");
                Assert.AreEqual(string.Empty, data.ErrorMessage);
                Assert.AreEqual(2, data.IssuesInEditor.Count);
                data.UpdateIssuesLocationWithModifiedBuffer("#include xpto;\r\n#include ypto;");
                Assert.AreEqual(string.Empty, data.ErrorMessage);
                Assert.AreEqual(2, data.IssuesInEditor.Count);
            }
            public void DoServerAnalysisUpdateBufferFileNotFound()
            {
                var source = new Source { Lines = new List<Line> { new Line { Id = 1, Val = "#include bal" }, new Line { Id = 2, Val = "#include bals" } } };

                this.vshelper.Expect(
                    mp => mp.CurrentSelectedDocumentLanguage())
                    .Return("c++");
                this.vshelper.Expect(
                    mp => mp.ActiveFileFullPath())
                    .Return("c:\\src\\file.cpp");
                this.vshelper.Expect(
                    mp => mp.ActiveSolutionPath())
                    .Return("c:\\src");
                this.service.Expect(
                    mp => mp.GetSourceForFileResource(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                    .Return(source);
                var element = new Resource { Date = new DateTime(2000, 1, 1), Key = "resourceKey"};
                this.service.Expect(
                    mp => mp.GetResourcesData(Arg<ConnectionConfiguration>.Is.Anything, Arg<string>.Is.Anything))
                    .Return(new List<Resource> { element })
                    .Repeat.Twice();

                this.plugin.Expect(mp => mp.IsSupported(Arg<string>.Is.Anything)).Return(true).Repeat.Once();
                this.plugin.Expect(mp => mp.GetServerAnalyserExtension()).Return(this.extension).Repeat.Once();
                this.extension.Expect(
                    mp =>
                    mp.GetResourceKey(
                        Arg<string>.Is.Anything,
                        Arg<VsProjectItem>.Is.Anything,
                        Arg<string>.Is.Anything,
                        Arg<string>.Is.Anything)).Return("key").Repeat.Once();

                var data = new ExtensionDataModel(this.service, this.vshelper, null);
                data.ServerAnalysis = ExtensionDataModel.AnalysesType.Server;
                data.AssociatedProject = new Resource { Key = "KEY"};
                data.UpdateDataInEditor("c:\\src\\file.cpp", "#include xpto;\r\n#include ypto;");
                Assert.AreEqual("No plugin installed that supports this file", data.ErrorMessage);
                Assert.AreEqual(0, data.IssuesInEditor.Count);
            }