public static TestDocumentView <PlainTextDocument> SetUp(Alignment alignment = Alignment.Start, string text = null) { var doc = new PlainTextDocument(); doc.InsertAt(0, text ?? "Hello World, Here I am. Long text ahead here. This is the first paragraph.\nAfter a line break, we should see a second paragraph in the document."); var style = LayoutTestStyle.Create(); var textStyles = style.StyleSystem.StylesFor <TextStyleDefinition>(); var documentView = new TestDocumentView <PlainTextDocument>(new PlainTextDocumentEditor(style)); documentView.Style.SetValue(textStyles.Alignment, alignment); documentView.Style.SetValue(textStyles.Font, style.Style.MediumFont); documentView.Document = doc; style.StyleResolver.AddRoot(documentView); return(documentView); }
public TestDocumentView <ITextDocument> CreateView() { IUIStyle style = LayoutTestStyle.Create(); var chunk0 = Create(0, 5); var chunk1 = Create(5, 10); var chunk2 = Create(10, 15); var rootNode = Substitute.For <ITextNode>(); rootNode.Count.Returns(2); rootNode[0].Returns(chunk0); rootNode[1].Returns(chunk1); rootNode[2].Returns(chunk2); rootNode.Offset.Returns(0); rootNode.EndOffset.Returns(10); var rootDocument = Substitute.For <ITextDocument>(); rootDocument.Root.Returns(rootNode); var view0 = Substitute.For <ITextView <ITextDocument> >(); view0.Node.Returns(chunk0); view0.Offset.Returns(chunk0.Offset); view0.EndOffset.Returns(chunk0.EndOffset); var view1 = Substitute.For <ITextView <ITextDocument> >(); view1.Node.Returns(chunk1); view1.Offset.Returns(chunk1.Offset); view1.EndOffset.Returns(chunk1.EndOffset); var view2 = Substitute.For <ITextView <ITextDocument> >(); view2.Node.Returns(chunk2); view2.Offset.Returns(chunk2.Offset); view2.EndOffset.Returns(chunk2.EndOffset); var rootView = Substitute.For <ITextView <ITextDocument> >(); rootView.Node.Returns(rootNode); rootView.Count.Returns(3); rootView[0].Returns(view0); rootView[1].Returns(view1); rootView[2].Returns(view2); var viewFactory = Substitute.For <ITextNodeViewFactory <ITextDocument> >(); viewFactory.CreateFor(rootNode, Arg.Any <IStyle>()).Returns(rootView); viewFactory.CreateFor(rootNode[0], Arg.Any <IStyle>()).Returns(view0); viewFactory.CreateFor(rootNode[1], Arg.Any <IStyle>()).Returns(view1); viewFactory.CreateFor(rootNode[2], Arg.Any <IStyle>()).Returns(view2); var editor = Substitute.For <IDocumentEditor <DocumentView <ITextDocument>, ITextDocument> >(); editor.CreateDocument().Returns(rootDocument); editor.Style.Returns(style); editor.CreateViewFactory().Returns(viewFactory); var documentView = new TestDocumentView <ITextDocument>(editor); rootNode[0].ClearReceivedCalls(); rootNode[1].ClearReceivedCalls(); rootNode[2].ClearReceivedCalls(); rootNode.ClearReceivedCalls(); rootDocument.ClearReceivedCalls(); editor.ClearReceivedCalls(); rootView.ClearReceivedCalls(); rootView[0].ClearReceivedCalls(); rootView[1].ClearReceivedCalls(); rootView[2].ClearReceivedCalls(); return(documentView); }