### Question:
XCcyIborIborSwapTemplate implements TradeTemplate, ImmutableBean, Serializable { public static XCcyIborIborSwapTemplate.Builder builder() { return new XCcyIborIborSwapTemplate.Builder(); } 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 test_builder_notEnoughData() { assertThatIllegalArgumentException() .isThrownBy(() -> XCcyIborIborSwapTemplate.builder() .tenor(TENOR_2Y) .build()); }