public virtual void test_of_periodAndIndex()
        {
            IborFixingDepositTemplate test = IborFixingDepositTemplate.of(Period.ofMonths(1), EUR_LIBOR_3M);

            assertEquals(test.Convention, CONVENTION);
            assertEquals(test.DepositPeriod, Period.ofMonths(1));
        }
        public virtual void test_builder_noPeriod()
        {
            IborFixingDepositTemplate test = IborFixingDepositTemplate.builder().convention(CONVENTION).build();

            assertEquals(test.Convention, CONVENTION);
            assertEquals(test.DepositPeriod, EUR_LIBOR_3M.Tenor.Period);
        }
        public virtual void test_of_index()
        {
            IborFixingDepositTemplate test = IborFixingDepositTemplate.of(EUR_LIBOR_3M);

            assertEquals(test.Convention, CONVENTION);
            assertEquals(test.DepositPeriod, EUR_LIBOR_3M.Tenor.Period);
        }
        public virtual void test_builder()
        {
            IborFixingDepositTemplate test = IborFixingDepositTemplate.builder().convention(CONVENTION).depositPeriod(Period.ofMonths(1)).build();

            assertEquals(test.Convention, CONVENTION);
            assertEquals(test.DepositPeriod, Period.ofMonths(1));
        }
        //-------------------------------------------------------------------------
        public virtual void coverage()
        {
            IborFixingDepositTemplate test1 = IborFixingDepositTemplate.of(EUR_LIBOR_3M);

            coverImmutableBean(test1);
            IborFixingDepositTemplate test2 = IborFixingDepositTemplate.of(GBP_LIBOR_6M);

            coverBeanEquals(test1, test2);
        }
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         IborFixingDepositTemplate other = (IborFixingDepositTemplate)obj;
         return(JodaBeanUtils.equal(depositPeriod, other.depositPeriod) && JodaBeanUtils.equal(convention, other.convention));
     }
     return(false);
 }
        public virtual void test_createTrade()
        {
            IborFixingDepositTemplate template = IborFixingDepositTemplate.of(EUR_LIBOR_3M);
            double    notional           = 1d;
            double    fixedRate          = 0.045;
            LocalDate tradeDate          = LocalDate.of(2015, 1, 22);
            IborFixingDepositTrade trade = template.createTrade(tradeDate, BUY, notional, fixedRate, REF_DATA);
            ImmutableIborFixingDepositConvention conv = (ImmutableIborFixingDepositConvention)template.Convention;
            LocalDate         startExpected           = conv.SpotDateOffset.adjust(tradeDate, REF_DATA);
            LocalDate         endExpected             = startExpected.plus(template.DepositPeriod);
            IborFixingDeposit productExpected         = IborFixingDeposit.builder().businessDayAdjustment(conv.BusinessDayAdjustment).buySell(BUY).startDate(startExpected).endDate(endExpected).fixedRate(fixedRate).index(EUR_LIBOR_3M).notional(notional).build();
            TradeInfo         tradeInfoExpected       = TradeInfo.builder().tradeDate(tradeDate).build();

            assertEquals(trade.Info, tradeInfoExpected);
            assertEquals(trade.Product, productExpected);
        }
 public virtual void test_build_negativePeriod()
 {
     assertThrowsIllegalArg(() => IborFixingDepositTemplate.builder().convention(CONVENTION).depositPeriod(Period.ofMonths(-3)).build());
 }
        public virtual void test_serialization()
        {
            IborFixingDepositTemplate test = IborFixingDepositTemplate.of(EUR_LIBOR_3M);

            assertSerialization(test);
        }
 /// <summary>
 /// Obtains a template based on the specified periods and convention.
 /// </summary>
 /// <param name="depositPeriod">  the period between the start date and the end date </param>
 /// <param name="convention">  the market convention </param>
 /// <returns> the template </returns>
 public static IborFixingDepositTemplate of(Period depositPeriod, IborFixingDepositConvention convention)
 {
     ArgChecker.notNull(depositPeriod, "depositPeriod");
     ArgChecker.notNull(convention, "convention");
     return(IborFixingDepositTemplate.builder().depositPeriod(depositPeriod).convention(convention).build());
 }