### Question:
ImmutableLanguage implements Language { @Override public String toString() { return MoreObjects. toStringHelper(getClass()). add("locale",languageTag()). toString(); } ImmutableLanguage(Locale locale); @Override boolean isWildcard(); @Override String primaryTag(); @Override String subTag(); @Override Locale locale(); @Override String toHeader(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void wildcardHasCustomToString() throws Exception { ImmutableLanguage sut = wildcard(); assertThat(sut.toString(),equalTo("ImmutableLanguage{locale=*}")); }
@Test public void simpleLanguageHasCustomToString() throws Exception { ImmutableLanguage sut = simpleLanguage(); assertThat(sut.toString(),equalTo("ImmutableLanguage{locale=en}")); }
@Test public void compositeLanguageHasCustomToString() throws Exception { ImmutableLanguage sut = compositeLanguage(); assertThat(sut.toString(),equalTo("ImmutableLanguage{locale=en-US}")); }