### Question:
ObservationFeatureLayer implements Serializable { public static ObservationFeatureLayer from(Spatial.ObservationFeatureLayer sc2ApiObservationFeatureLayer) { require("sc2api observation feature layer", sc2ApiObservationFeatureLayer); return new ObservationFeatureLayer(sc2ApiObservationFeatureLayer); } private  ObservationFeatureLayer(Spatial.ObservationFeatureLayer sc2ApiObservationFeatureLayer); static ObservationFeatureLayer from(Spatial.ObservationFeatureLayer sc2ApiObservationFeatureLayer); FeatureLayers getRenders(); FeatureLayersMinimap getMinimapRenders(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test void throwsExceptionWhenSc2ApiObservationFeatureLayerIsNull() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ObservationFeatureLayer.from(nothing())) .withMessage("sc2api observation feature layer is required"); }
@Test void convertsAllFieldsFromSc2ApiObservationFeatureLayer() { assertThatAllFieldsAreConverted(ObservationFeatureLayer.from(sc2ApiObservationFeatureLayer())); }
@Test void throwsExceptionWhenRendersIsNotProvided() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ObservationFeatureLayer.from(without( () -> sc2ApiObservationFeatureLayer().toBuilder(), Spatial.ObservationFeatureLayer.Builder::clearRenders).build())) .withMessage("renders is required"); }
@Test void throwsExceptionWhenMinimapRendersIsNotProvided() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ObservationFeatureLayer.from(without( () -> sc2ApiObservationFeatureLayer().toBuilder(), Spatial.ObservationFeatureLayer.Builder::clearMinimapRenders).build())) .withMessage("minimap renders is required"); }