### Question:
IborCapFloorTrade implements ProductTrade, ResolvableTrade<ResolvedIborCapFloorTrade>, ImmutableBean, Serializable { public static IborCapFloorTrade.Builder builder() { return new IborCapFloorTrade.Builder(); } private  IborCapFloorTrade(
      TradeInfo info,
      IborCapFloor product,
      AdjustablePayment premium); @Override IborCapFloorTrade withInfo(PortfolioItemInfo info); @Override PortfolioItemSummary summarize(); @Override ResolvedIborCapFloorTrade resolve(ReferenceData refData); static IborCapFloorTrade.Meta meta(); static IborCapFloorTrade.Builder builder(); @Override IborCapFloorTrade.Meta metaBean(); @Override TradeInfo getInfo(); @Override IborCapFloor getProduct(); Optional<AdjustablePayment> getPremium(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { IborCapFloorTrade test1 = sut(); coverImmutableBean(test1); IborCapFloor product = IborCapFloor.of( IborCapFloorLeg.builder() .calculation(RATE_CALCULATION) .floorSchedule(CAP) .notional(NOTIONAL) .paymentDateOffset(PAYMENT_OFFSET) .paymentSchedule(SCHEDULE) .payReceive(PAY) .build()); IborCapFloorTrade test2 = IborCapFloorTrade.builder() .product(product) .build(); coverBeanEquals(test1, test2); }