### Question:
FlexIconComponent extends FlexMessageComponent { public static Builder newBuilder(@NonNull String url) { return new Builder(url); } private  FlexIconComponent(); private  FlexIconComponent(@NonNull Builder builder); static Builder newBuilder(@NonNull String url); @NonNull @Override JSONObject toJsonObject();  }### Answer:
@Test public void all_fields() throws JSONException { component = FlexIconComponent.newBuilder("https: .setMargin(FlexMessageComponent.Margin.XL) .setSize(FlexMessageComponent.Size.XL5) .setAspectRatio(FlexMessageComponent.AspectRatio.RATIO_1x1) .build(); messageShouldBe("{" + " \"type\": \"icon\"," + " \"url\": \"https: " \"margin\": \"xl\"," + " \"size\": \"xl5\"," + " \"aspectRatio\": \"1:1\"" + "}"); }
@Test public void without_margin_and_ratio() throws JSONException { component = FlexIconComponent.newBuilder("https: .setSize(FlexMessageComponent.Size.XXL) .build(); messageShouldBe("{" + " \"type\": \"icon\"," + " \"url\": \"https: " \"size\": \"xxl\"" + "}"); }