@Test
  public void testAll() {
    FormattedObject aFO = new FormattedObject("Any", new BracketFormatter());
    assertEquals("Any", aFO.getValue());
    assertEquals(BracketFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[Any]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new BracketFormatter(new BracketFormatter()));
    assertEquals("Any", aFO.getValue());
    assertEquals(BracketFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[[Any]]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO =
        new FormattedObject(
            "Any",
            new IFormatterProvider() {
              public IFormatter getFormatter() {
                return new BracketFormatter();
              }
            });
    assertEquals("Any", aFO.getValue());
    assertEquals(BracketFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[Any]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject(null, new BracketFormatter(new BracketFormatter()));
    assertNull(aFO.getValue());
    assertEquals(BracketFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[[]]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new StringPrefixFormatter("x "));
    assertEquals("Any", aFO.getValue());
    assertEquals(StringPrefixFormatter.class, aFO.getFormatter().getClass());
    assertEquals("x Any", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new StringPrefixFormatter(new BracketFormatter(), "x "));
    assertEquals("Any", aFO.getValue());
    assertEquals(StringPrefixFormatter.class, aFO.getFormatter().getClass());
    assertEquals("x [Any]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new StringSuffixFormatter(" y"));
    assertEquals("Any", aFO.getValue());
    assertEquals(StringSuffixFormatter.class, aFO.getFormatter().getClass());
    assertEquals("Any y", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new StringSuffixFormatter(new BracketFormatter(), " y"));
    assertEquals("Any", aFO.getValue());
    assertEquals(StringSuffixFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[Any] y", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new MinLengthAddLeadingFormatter(10, '@'));
    assertEquals("Any", aFO.getValue());
    assertEquals(MinLengthAddLeadingFormatter.class, aFO.getFormatter().getClass());
    assertEquals("@@@@@@@Any", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO =
        new FormattedObject(
            "Any", new MinLengthAddLeadingFormatter(new BracketFormatter(), 10, '@'));
    assertEquals("Any", aFO.getValue());
    assertEquals(MinLengthAddLeadingFormatter.class, aFO.getFormatter().getClass());
    assertEquals("@@@@@[Any]", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO = new FormattedObject("Any", new MinLengthAddTrailingFormatter(10, '@'));
    assertEquals("Any", aFO.getValue());
    assertEquals(MinLengthAddTrailingFormatter.class, aFO.getFormatter().getClass());
    assertEquals("Any@@@@@@@", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);

    aFO =
        new FormattedObject(
            "Any", new MinLengthAddTrailingFormatter(new BracketFormatter(), 10, '@'));
    assertEquals("Any", aFO.getValue());
    assertEquals(MinLengthAddTrailingFormatter.class, aFO.getFormatter().getClass());
    assertEquals("[Any]@@@@@", aFO.getAsString());
    PhlocTestUtils.testToStringImplementation(aFO);
  }