public void Dedent_DedentsLeadingWhitespace(string dummyLine, int dummyDedentLength, string expectedResult)
        {
            // Arrange
            var testSubject      = new LeadingWhitespaceEditorService();
            var dummyStringSlice = new StringSlice(dummyLine);

            // Act
            testSubject.Dedent(ref dummyStringSlice, dummyDedentLength);

            // Assert
            Assert.Equal(expectedResult, dummyStringSlice.ToString());
        }
        public void Indent_IndentsStringSlice(string dummyLine, int dummyIndentLength, string expectedResult)
        {
            // Arrange
            var testSubject      = new LeadingWhitespaceEditorService();
            var dummyStringSlice = new StringSlice(dummyLine);

            // Act
            StringSlice result = testSubject.Indent(dummyStringSlice, dummyIndentLength);

            // Assert
            Assert.Equal(expectedResult, result.ToString());
        }
        public void Collapse_CollapsesLeadingWhitespace(string dummyLine, float dummyCollapseLength, string expectedResult)
        {
            // Arrange
            var testSubject      = new LeadingWhitespaceEditorService();
            var dummyStringSlice = new StringSlice(dummyLine);

            // Act
            testSubject.Collapse(ref dummyStringSlice, dummyCollapseLength);

            // Assert
            Assert.Equal(expectedResult, dummyStringSlice.ToString());
        }
        public void Collapse_ThrowsArgumentOutOfRangeExceptionIfCollapseRatioIsNotWithinTheAcceptedRange(float dummyCollapseRatio)
        {
            // Arrange
            var testSubject      = new LeadingWhitespaceEditorService();
            var dummyStringSlice = new StringSlice();

            // Act and assert
            ArgumentOutOfRangeException result = Assert.Throws <ArgumentOutOfRangeException>(() => testSubject.Collapse(ref dummyStringSlice, dummyCollapseRatio));

            Assert.Equal(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueMustBeWithinRange, "[0, 1]", dummyCollapseRatio) + "\nParameter name: collapseRatio",
                         result.Message,
                         ignoreLineEndingDifferences: true);
        }
        public void Dedent_ThrowsArgumentOutOfRangeExceptionIfDedentLengthIsNegative()
        {
            // Arrange
            var       testSubject       = new LeadingWhitespaceEditorService();
            var       dummyStringSlice  = new StringSlice();
            const int dummyDedentLength = -1;

            // Act and assert
            ArgumentOutOfRangeException result = Assert.Throws <ArgumentOutOfRangeException>(() => testSubject.Dedent(ref dummyStringSlice, dummyDedentLength));

            Assert.Equal(string.Format(Strings.ArgumentOutOfRangeException_Shared_ValueCannotBeNegative, dummyDedentLength) + "\nParameter name: dedentLength",
                         result.Message,
                         ignoreLineEndingDifferences: true);
        }