public virtual void test_of_period()
        {
            FixedOvernightSwapTemplate test = FixedOvernightSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV);

            assertEquals(test.PeriodToStart, Period.ofMonths(3));
            assertEquals(test.Tenor, TENOR_10Y);
            assertEquals(test.Convention, CONV);
        }
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            FixedOvernightSwapTemplate test = FixedOvernightSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV);

            coverImmutableBean(test);
            FixedOvernightSwapTemplate test2 = FixedOvernightSwapTemplate.of(Period.ofMonths(2), TENOR_2Y, CONV2);

            coverBeanEquals(test, test2);
        }
        //-------------------------------------------------------------------------
        public virtual void test_createTrade()
        {
            FixedOvernightSwapTemplate @base = FixedOvernightSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV);
            LocalDate tradeDate = LocalDate.of(2015, 5, 5);
            LocalDate startDate = date(2015, 8, 7);
            LocalDate endDate   = date(2025, 8, 7);
            SwapTrade test      = @base.createTrade(tradeDate, BUY, NOTIONAL_2M, 0.25d, REF_DATA);
            Swap      expected  = Swap.of(FIXED.toLeg(startDate, endDate, PAY, NOTIONAL_2M, 0.25d), FFUND_LEG.toLeg(startDate, endDate, RECEIVE, NOTIONAL_2M));

            assertEquals(test.Info.TradeDate, tradeDate);
            assertEquals(test.Product, expected);
        }
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         FixedOvernightSwapTemplate other = (FixedOvernightSwapTemplate)obj;
         return(JodaBeanUtils.equal(periodToStart, other.periodToStart) && JodaBeanUtils.equal(tenor, other.tenor) && JodaBeanUtils.equal(convention, other.convention));
     }
     return(false);
 }
 /// <summary>
 /// Obtains a template based on the specified period, tenor and convention.
 /// <para>
 /// The period from the spot date to the start date is specified.
 ///
 /// </para>
 /// </summary>
 /// <param name="periodToStart">  the period between the spot date and the start date </param>
 /// <param name="tenor">  the tenor of the swap </param>
 /// <param name="convention">  the market convention </param>
 /// <returns> the template </returns>
 public static FixedOvernightSwapTemplate of(Period periodToStart, Tenor tenor, FixedOvernightSwapConvention convention)
 {
     return(FixedOvernightSwapTemplate.builder().periodToStart(periodToStart).tenor(tenor).convention(convention).build());
 }
        public virtual void test_serialization()
        {
            FixedOvernightSwapTemplate test = FixedOvernightSwapTemplate.of(Period.ofMonths(3), TENOR_10Y, CONV);

            assertSerialization(test);
        }
 //-------------------------------------------------------------------------
 public virtual void test_builder_notEnoughData()
 {
     assertThrowsIllegalArg(() => FixedOvernightSwapTemplate.builder().tenor(TENOR_2Y).build());
 }