### Question:
ThreeLegBasisSwapTemplate implements TradeTemplate, ImmutableBean, Serializable { public static ThreeLegBasisSwapTemplate of(Tenor tenor, ThreeLegBasisSwapConvention convention) { return of(Period.ZERO, tenor, convention); } private  ThreeLegBasisSwapTemplate(
      Period periodToStart,
      Tenor tenor,
      ThreeLegBasisSwapConvention convention); static ThreeLegBasisSwapTemplate of(Tenor tenor, ThreeLegBasisSwapConvention convention); static ThreeLegBasisSwapTemplate of(Period periodToStart, Tenor tenor, ThreeLegBasisSwapConvention convention); SwapTrade createTrade(
      LocalDate tradeDate,
      BuySell buySell,
      double notional,
      double spread,
      ReferenceData refData); static ThreeLegBasisSwapTemplate.Meta meta(); static ThreeLegBasisSwapTemplate.Builder builder(); @Override ThreeLegBasisSwapTemplate.Meta metaBean(); Period getPeriodToStart(); Tenor getTenor(); ThreeLegBasisSwapConvention getConvention(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { ThreeLegBasisSwapTemplate test = ThreeLegBasisSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV); coverImmutableBean(test); ThreeLegBasisSwapTemplate test2 = ThreeLegBasisSwapTemplate.of(Period.ofMonths(2), TENOR_2Y, CONV2); coverBeanEquals(test, test2); }
@Test public void test_serialization() { ThreeLegBasisSwapTemplate test = ThreeLegBasisSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV); assertSerialization(test); }