// Path: sorter/src/main/java/sortpom/exception/FailureException.java
// public class FailureException extends RuntimeException {
//     public FailureException(String msg, Throwable cause) {
//         super(msg, cause);
//     }
// 
//     public FailureException(String msg) {
//         super(msg);
//     }
// }


import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import sortpom.exception.FailureException;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
        assertEquals(" ", pluginParameters.indentCharacters);
    }

    @Test
    void test255IndentCharacterShouldResultIn255Space() {
        PluginParameters pluginParameters = PluginParameters.builder()
                .setIndent(255, true, false)
                .build();

        // Test for only space
        assertTrue(pluginParameters.indentCharacters.matches("^ *$"));
        assertEquals(255, pluginParameters.indentCharacters.length());
    }

    @Test
    void minusOneIndentCharacterShouldResultInOneTab() {
        PluginParameters pluginParameters = PluginParameters.builder()
                .setIndent(-1, true, false)
                .build();

        assertEquals("\t", pluginParameters.indentCharacters);
    }

    @Test
    void minusTwoShouldFail() {

        final Executable testMethod = () -> PluginParameters.builder()
                .setIndent(-2, true, false)
                .build();

// Path: sorter/src/main/java/sortpom/exception/FailureException.java
// public class FailureException extends RuntimeException {
//     public FailureException(String msg, Throwable cause) {
//         super(msg, cause);
//     }
// 
//     public FailureException(String msg) {
//         super(msg);
//     }
// }


// Path: sorter/src/test/java/sortpom/parameter/IndentCharactersParameterTest.java
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
import sortpom.exception.FailureException;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsEqual.equalTo;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;

        assertEquals(" ", pluginParameters.indentCharacters);
    }

    @Test
    void test255IndentCharacterShouldResultIn255Space() {
        PluginParameters pluginParameters = PluginParameters.builder()
                .setIndent(255, true, false)
                .build();

        // Test for only space
        assertTrue(pluginParameters.indentCharacters.matches("^ *$"));
        assertEquals(255, pluginParameters.indentCharacters.length());
    }

    @Test
    void minusOneIndentCharacterShouldResultInOneTab() {
        PluginParameters pluginParameters = PluginParameters.builder()
                .setIndent(-1, true, false)
                .build();

        assertEquals("\t", pluginParameters.indentCharacters);
    }

    @Test
    void minusTwoShouldFail() {

        final Executable testMethod = () -> PluginParameters.builder()
                .setIndent(-2, true, false)
                .build();

        final FailureException thrown = assertThrows(FailureException.class, testMethod);