public void AppendPeekAndGetTextWithSameFlags() { // Arrange var flags = new Flags() { FontSize = 12, Font = "x" }; var initialWidth = 30; var constraint = new DimensionConstraint() { MaxHeight = 12, MaxWidth = initialWidth }; var text = "A string"; // The whole text can fit within the given width textScoperMock.Setup(ts => ts.GetFittingText(flags.Font, flags.FontSize, text, initialWidth)).Returns(text); // Act bufferUnderTest.Append(text, flags); var peekedText = bufferUnderTest.Peek(constraint, flags); var takenText = bufferUnderTest.Take(constraint, flags); var bufferEmpty1 = bufferUnderTest.EndOfBuffer(); bufferUnderTest.Append(text, flags); var peekedObject = (FormattedTextMock)bufferUnderTest.Peek(constraint); var takenObject = (FormattedTextMock)bufferUnderTest.Take(constraint); var bufferEmpty2 = bufferUnderTest.EndOfBuffer(); // Assert Assert.AreEqual(text, peekedText); Assert.AreEqual(text, takenText); Assert.IsTrue(bufferEmpty1, "The buffer should be empty"); Assert.AreEqual(text, peekedObject.Text); Assert.AreEqual(false, peekedObject.AllowZeroPosition); Assert.AreEqual(flags, peekedObject.Flags); Assert.AreEqual(text, takenObject.Text); Assert.AreEqual(false, takenObject.AllowZeroPosition); Assert.AreEqual(flags, takenObject.Flags); Assert.IsTrue(bufferEmpty2, "The buffer should be empty"); }