1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
5
using System.Collections.Generic;
6
using System.ComponentModel.Design;
8
using ICSharpCode.SharpDevelop.Editor;
9
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
10
using ICSharpCode.SharpDevelop.Tests.Utils;
11
using ICSharpCode.XmlEditor;
12
using NUnit.Framework;
14
namespace XmlEditor.Tests.XPath
17
public class SingleXPathQueryElementMarkedTestFixture
19
ITextMarker xpathNodeTextMarker;
20
List<ITextMarker> markers;
21
List<ITextMarker> markersAfterRemove;
26
string xml = "<root><foo/></root>";
27
XPathQuery query = new XPathQuery(xml);
28
XPathNodeMatch[] nodes = query.FindNodes("//root");
30
IDocument doc = MockTextMarkerService.CreateDocumentWithMockService();
32
XPathNodeTextMarker xpathNodeMarker = new XPathNodeTextMarker(doc);
33
xpathNodeMarker.AddMarkers(nodes);
35
ITextMarkerService service = doc.GetService(typeof(ITextMarkerService)) as ITextMarkerService;
36
markers = new List<ITextMarker>(service.TextMarkers);
39
xpathNodeMarker.RemoveMarkers();
40
markersAfterRemove = new List<ITextMarker>(service.TextMarkers);
42
xpathNodeTextMarker = markers[0];
46
public void OneTextMarkerAddedForXPathMatch()
48
Assert.AreEqual(1, markers.Count);
52
public void StartOffsetForXPathNodeMarkerIsOne()
54
Assert.AreEqual(1, xpathNodeTextMarker.StartOffset);
58
public void LengthForXpathNodeMarkerIsFour()
60
Assert.AreEqual(4, xpathNodeTextMarker.Length);
64
public void NoTextMarkersAfterXPathNodeMarkerRemoveMarkersCalled()
66
Assert.AreEqual(0, markersAfterRemove.Count);