### Question:
IborCapFloor implements Product, Resolvable<ResolvedIborCapFloor>, ImmutableBean, Serializable { public static IborCapFloor of(IborCapFloorLeg capFloorLeg) { return new IborCapFloor(capFloorLeg, null); } private  IborCapFloor(
      IborCapFloorLeg capFloorLeg,
      SwapLeg payLeg); static IborCapFloor of(IborCapFloorLeg capFloorLeg); static IborCapFloor of(IborCapFloorLeg capFloorLeg, SwapLeg payLeg); @Override ImmutableSet<Currency> allPaymentCurrencies(); @Override ImmutableSet<Currency> allCurrencies(); ImmutableSet<Index> allIndices(); @Override ResolvedIborCapFloor resolve(ReferenceData refData); static IborCapFloor.Meta meta(); @Override IborCapFloor.Meta metaBean(); IborCapFloorLeg getCapFloorLeg(); Optional<SwapLeg> getPayLeg(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { IborCapFloor test1 = IborCapFloor.of(CAPFLOOR_LEG); coverImmutableBean(test1); IborCapFloorLeg capFloor = IborCapFloorLeg.builder() .calculation(RATE_CALCULATION) .floorSchedule(CAP) .notional(NOTIONAL) .paymentDateOffset(PAYMENT_OFFSET) .paymentSchedule(SCHEDULE) .payReceive(RECEIVE) .build(); IborCapFloor test2 = IborCapFloor.of(capFloor, PAY_LEG); coverBeanEquals(test1, test2); }
@Test public void test_serialization() { IborCapFloor test = IborCapFloor.of(CAPFLOOR_LEG); assertSerialization(test); }