GisFeatureType { public static GisFeatureTypeBuilder geonamesFeatureClass(String featureClass) { return new GisFeatureTypeBuilder(featureClass); } private  GisFeatureType(String geonamesFeatureClass, String geonamesFeatureCode); static GisFeatureTypeBuilder geonamesFeatureClass(String featureClass); String getGeonamesFeatureClass(); String getGeonamesFeatureCode(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }
@Test(expected=IllegalArgumentException.class) public void shouldNotCreateGisFeatureTypeWithNullFeatureClass() { geonamesFeatureClass(null).geonamesFeatureCode("ADM2"); }
@Test(expected=IllegalArgumentException.class) public void shouldNotCreateGisFeatureTypeWithEmptyFeatureClass() { geonamesFeatureClass("").geonamesFeatureCode("ADM2"); }
@Test(expected=IllegalArgumentException.class) public void shouldNotCreateGisFeatureTypeWithNullFeatureCode() { geonamesFeatureClass("A").geonamesFeatureCode(null); }
@Test(expected=IllegalArgumentException.class) public void shouldNotCreateGisFeatureTypeWithEmptyFeatureCode() { geonamesFeatureClass("A").geonamesFeatureCode(""); }