### Question:
XCcyIborIborSwapTemplate implements TradeTemplate, ImmutableBean, Serializable { public static XCcyIborIborSwapTemplate of(Tenor tenor, XCcyIborIborSwapConvention convention) { return of(Period.ZERO, tenor, convention); } private  XCcyIborIborSwapTemplate(
      Period periodToStart,
      Tenor tenor,
      XCcyIborIborSwapConvention convention); static XCcyIborIborSwapTemplate of(Tenor tenor, XCcyIborIborSwapConvention convention); static XCcyIborIborSwapTemplate of(Period periodToStart, Tenor tenor, XCcyIborIborSwapConvention convention); CurrencyPair getCurrencyPair(); SwapTrade createTrade(LocalDate tradeDate,
      BuySell buySell,
      double notionalSpreadLeg,
      double notionalFlatLeg,
      double spread,
      ReferenceData refData); static XCcyIborIborSwapTemplate.Meta meta(); static XCcyIborIborSwapTemplate.Builder builder(); @Override XCcyIborIborSwapTemplate.Meta metaBean(); Period getPeriodToStart(); Tenor getTenor(); XCcyIborIborSwapConvention getConvention(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { XCcyIborIborSwapTemplate test = XCcyIborIborSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV); coverImmutableBean(test); DaysAdjustment bda2 = DaysAdjustment.ofBusinessDays(1, EUTA); XCcyIborIborSwapConvention conv2 = ImmutableXCcyIborIborSwapConvention.of("XXX", USD3M, EUR3M, bda2); XCcyIborIborSwapTemplate test2 = XCcyIborIborSwapTemplate.of(Period.ofMonths(2), TENOR_2Y, conv2); coverBeanEquals(test, test2); }
@Test public void test_serialization() { XCcyIborIborSwapTemplate test = XCcyIborIborSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV); assertSerialization(test); }