### Question:
ActionSpatialUnitSelectionRect implements Sc2ApiSerializable<Spatial.ActionSpatialUnitSelectionRect> { public static ActionSpatialUnitSelectionRect from( Spatial.ActionSpatialUnitSelectionRect sc2ApiActionSpatialUnitSelectionRect) { require("sc2api action spatial unit selection rect", sc2ApiActionSpatialUnitSelectionRect); return new ActionSpatialUnitSelectionRect(sc2ApiActionSpatialUnitSelectionRect); } private  ActionSpatialUnitSelectionRect(Builder builder); private  ActionSpatialUnitSelectionRect(
            Spatial.ActionSpatialUnitSelectionRect sc2ApiActionSpatialUnitSelectionRect); static ActionSpatialUnitSelectionRectSyntax select(); static ActionSpatialUnitSelectionRect from(
            Spatial.ActionSpatialUnitSelectionRect sc2ApiActionSpatialUnitSelectionRect); @Override Spatial.ActionSpatialUnitSelectionRect toSc2Api(); Set<RectangleI> getSelectionsInScreenCoord(); boolean isSelectionAdd(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test void throwsExceptionWhenSc2ApiActionSpatialUnitSelectionRectIsNull() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> ActionSpatialUnitSelectionRect.from(nothing())) .withMessage("sc2api action spatial unit selection rect is required"); }
@Test void convertsSc2ApiActionSpatialUnitSelectionRectToActionSpatialUnitSelectionRect() { assertThatAllFieldsAreConverted(ActionSpatialUnitSelectionRect.from(sc2ApiActionSpatialUnitSelectionRect())); }