blob: b48f2ad516cab46666894bce65254a2f4d11b176 [file] [log] [blame]
Sho SHIMIZU6ec2eca2016-05-19 11:37:01 -07001/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.store.resource.impl;
17
18import org.junit.Before;
19import org.junit.Test;
20import org.onlab.packet.MplsLabel;
21import org.onlab.packet.VlanId;
22import org.onosproject.net.ChannelSpacing;
23import org.onosproject.net.DeviceId;
24import org.onosproject.net.OchSignal;
25import org.onosproject.net.PortNumber;
26import org.onosproject.net.resource.DiscreteResource;
27import org.onosproject.net.resource.Resource;
28import org.onosproject.net.resource.Resources;
29
30import static org.hamcrest.Matchers.is;
31import static org.junit.Assert.assertThat;
32
33/**
34 * Unit tests for Codecs.
35 */
36public class CodecsTest {
37
38 private static final DeviceId DID = DeviceId.deviceId("a");
39 private static final PortNumber PN = PortNumber.portNumber(1);
40 private static final VlanId VLAN = VlanId.vlanId((short) 1);
41 private static final MplsLabel MPLS = MplsLabel.mplsLabel(1);
42 private static final OchSignal OCH = OchSignal.newDwdmSlot(ChannelSpacing.CHL_50GHZ, 1);
43
44 private Codecs sut;
45
46 @Before
47 public void setUp() {
48 sut = Codecs.getInstance();
49 }
50
51 /**
52 * Checks that it's possible to encode a VLAN ID.
53 */
54 @Test
55 public void isVlanEncodable() {
56 DiscreteResource resource = Resources.discrete(DID, PN, VLAN).resource();
57
58 assertThat(sut.isEncodable(resource), is(true));
59 }
60
61 /**
62 * Checks that it's possible to encode a MPLS label.
63 */
64 @Test
65 public void isMplsEncodable() {
66 DiscreteResource resource = Resources.discrete(DID, PN, MPLS).resource();
67
68 assertThat(sut.isEncodable(resource), is(true));
69 }
70
71 /**
72 * Checks that it's not possible to encode the root resource.
73 */
74 @Test
75 public void isRootNonEncodable() {
76 DiscreteResource resource = Resource.ROOT;
77
78 assertThat(sut.isEncodable(resource), is(false));
79 }
80
81 /**
82 * Checks that it's not possible to encode an Och signal.
83 */
84 @Test
85 public void isOchNonEncodable() {
86 DiscreteResource resource = Resources.discrete(DID, PN, OCH).resource();
87
88 assertThat(sut.isEncodable(resource), is(false));
89 }
90}