### Question:
FraTemplate implements TradeTemplate, ImmutableBean, Serializable { public static FraTemplate.Builder builder() { return new FraTemplate.Builder(); } private  FraTemplate(
      Period periodToStart,
      Period periodToEnd,
      FraConvention convention); static FraTemplate of(Period periodToStart, IborIndex index); static FraTemplate of(Period periodToStart, Period periodToEnd, FraConvention convention); FraTrade createTrade(
      LocalDate tradeDate,
      BuySell buySell,
      double notional,
      double fixedRate,
      ReferenceData refData); static FraTemplate.Meta meta(); static FraTemplate.Builder builder(); @Override FraTemplate.Meta metaBean(); Period getPeriodToStart(); Period getPeriodToEnd(); FraConvention getConvention(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_builder_insufficientInfo() { assertThatIllegalArgumentException() .isThrownBy(() -> FraTemplate.builder().convention(FRA_GBP_LIBOR_3M).build()); assertThatIllegalArgumentException() .isThrownBy(() -> FraTemplate.builder().periodToStart(Period.ofMonths(2)).build()); }