BUG-139: Implement PCEP state synchronization avoidance
[bgpcep.git] / pcep / ietf-stateful07 / src / test / java / org / opendaylight / protocol / pcep / ietf / Stateful07SessionProposalFactoryTest.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.protocol.pcep.ietf;
10
11 import org.junit.Assert;
12 import org.junit.Test;
13 import org.opendaylight.protocol.pcep.ietf.initiated00.Stateful07SessionProposalFactory;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Stateful1;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.Stateful1Builder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Tlvs1Builder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.stateful.capability.tlv.StatefulBuilder;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
22
23 public class Stateful07SessionProposalFactoryTest {
24
25     private static final int DEAD_TIMER = 4;
26     private static final int KEEP_ALIVE = 1;
27     private static final int SESSION_ID = 1;
28     private static final Open OPEN_MSG = new OpenBuilder()
29             .setDeadTimer((short) DEAD_TIMER)
30             .setKeepalive((short) KEEP_ALIVE)
31             .setSessionId((short) SESSION_ID)
32             .setTlvs(new TlvsBuilder()
33                 .addAugmentation(Tlvs1.class, new Tlvs1Builder().setStateful(new StatefulBuilder()
34                     .addAugmentation(Stateful1.class, new Stateful1Builder().setInitiation(true).build())
35                     .addAugmentation(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev150714.Stateful1.class, new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.sync.optimizations.rev150714.Stateful1Builder()
36                         .setTriggeredInitialSync(true)
37                         .setTriggeredResync(false)
38                         .setDeltaLspSyncCapability(true)
39                         .setIncludeDbVersion(false)
40                         .build())
41                     .setLspUpdateCapability(true).build()).build())
42                 .build())
43             .build();
44
45     @Test
46     public void testStateful07SessionProposalFactory() {
47         final Stateful07SessionProposalFactory sspf = new Stateful07SessionProposalFactory(DEAD_TIMER, KEEP_ALIVE, true, true, true, true, false, true, false);
48         Assert.assertEquals(DEAD_TIMER, sspf.getDeadTimer());
49         Assert.assertEquals(KEEP_ALIVE, sspf.getKeepAlive());
50         Assert.assertTrue(sspf.isActive());
51         Assert.assertTrue(sspf.isInstant());
52         Assert.assertTrue(sspf.isStateful());
53         Assert.assertFalse(sspf.isTriggeredResync());
54         Assert.assertTrue(sspf.isTriggeredSync());
55         Assert.assertTrue(sspf.isDeltaLspSync());
56         Assert.assertFalse(sspf.isIncludeDbVersion());
57         Assert.assertEquals(OPEN_MSG, sspf.getSessionProposal(null, SESSION_ID));
58     }
59 }