### Question:
ActionSpatialUnitSelectionPoint implements Sc2ApiSerializable<Spatial.ActionSpatialUnitSelectionPoint> { public static ActionSpatialUnitSelectionPoint from( Spatial.ActionSpatialUnitSelectionPoint sc2apiActionSpatialUnitSelectionPoint) { require("sc2api action spatial unit selection point", sc2apiActionSpatialUnitSelectionPoint); return new ActionSpatialUnitSelectionPoint(sc2apiActionSpatialUnitSelectionPoint); } private  ActionSpatialUnitSelectionPoint(Builder builder); private  ActionSpatialUnitSelectionPoint(
            Spatial.ActionSpatialUnitSelectionPoint sc2apiActionSpatialUnitSelectionPoint); static ActionSpatialUnitSelectionPointSyntax click(); static ActionSpatialUnitSelectionPoint from(
            Spatial.ActionSpatialUnitSelectionPoint sc2apiActionSpatialUnitSelectionPoint); @Override Spatial.ActionSpatialUnitSelectionPoint toSc2Api(); PointI getSelectionInScreenCoord(); Type getType(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test void throwsExceptionWhenSc2ApiActionSpatialUnitSelectionPointIsNull() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ActionSpatialUnitSelectionPoint.from(nothing())) .withMessage("sc2api action spatial unit selection point is required"); }
@Test void convertsSc2ApiActionSpatialUnitSelectionPointToActionSpatialUnitSelectionPoint() { assertThatAllFieldsAreConverted(ActionSpatialUnitSelectionPoint.from(sc2ApiActionSpatialUnitSelectionPoint())); }
@Test void throwsExceptionWhenUnitSelectionPointTypeIsNull() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ActionSpatialUnitSelectionPoint.Type.from(nothing())) .withMessage("sc2api unit selection point type is required"); }