2 * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
\r
11 import java.math.BigInteger;
\r
12 import java.util.ArrayList;
\r
13 import java.util.List;
\r
15 import java.util.Optional;
\r
16 import org.junit.Assert;
\r
17 import org.junit.Before;
\r
18 import org.junit.Test;
\r
19 import org.opendaylight.openflowplugin.api.OFConstants;
\r
20 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData;
\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.buckets.BucketCounter;
\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupId;
\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStats;
\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.GroupStatsBuilder;
\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.group.stats.BucketStats;
\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.multipart.reply.group.group.stats.BucketStatsBuilder;
\r
29 * @author michal.polkorab
\r
32 public class GroupStatsResponseConvertorTest {
\r
33 private ConvertorManager convertorManager;
\r
36 public void setUp() {
\r
37 convertorManager = ConvertorManagerFactory.createDefaultManager();
\r
41 * Test empty GroupStats conversion
\r
44 public void testEmptyGroupStats() {
\r
45 List<GroupStats> groupStats = new ArrayList<>();
\r
47 Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
48 .GroupStats>> salGroupStats = convertorManager.convert(groupStats, new VersionConvertorData(OFConstants.OFP_VERSION_1_3));
\r
50 Assert.assertFalse("Group stats response should be not present", salGroupStats.isPresent());
\r
54 * Test single GroupStat conversion
\r
57 public void testSingleGroupStat() {
\r
58 List<GroupStats> groupStats = new ArrayList<>();
\r
59 GroupStatsBuilder statsBuilder = new GroupStatsBuilder();
\r
60 statsBuilder.setByteCount(new BigInteger("12345"));
\r
61 statsBuilder.setDurationNsec(1000000L);
\r
62 statsBuilder.setDurationSec(5000L);
\r
63 statsBuilder.setGroupId(new GroupId(42L));
\r
64 statsBuilder.setPacketCount(new BigInteger("54321"));
\r
65 statsBuilder.setRefCount(24L);
\r
66 statsBuilder.setBucketStats(new ArrayList<BucketStats>());
\r
67 groupStats.add(statsBuilder.build());
\r
69 Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
70 .GroupStats>> salGroupStatsOptional = convertorManager.convert(groupStats, new VersionConvertorData(OFConstants.OFP_VERSION_1_3));
\r
71 Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());
\r
72 List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
73 .GroupStats> salGroupStats = salGroupStatsOptional.get();
\r
75 Assert.assertEquals("Wrong group stats size", 1, salGroupStats.size());
\r
76 org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
77 .GroupStats stat = salGroupStats.get(0);
\r
78 Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());
\r
79 Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());
\r
80 Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());
\r
81 Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());
\r
82 Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());
\r
83 Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());
\r
84 Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());
\r
88 * Test two GroupStats conversion
\r
91 public void testTwoGroupStats() {
\r
92 List<GroupStats> groupStats = new ArrayList<>();
\r
93 GroupStatsBuilder statsBuilder = new GroupStatsBuilder();
\r
94 statsBuilder.setByteCount(new BigInteger("12345"));
\r
95 statsBuilder.setDurationNsec(1000000L);
\r
96 statsBuilder.setDurationSec(5000L);
\r
97 statsBuilder.setGroupId(new GroupId(42L));
\r
98 statsBuilder.setPacketCount(new BigInteger("54321"));
\r
99 statsBuilder.setRefCount(24L);
\r
100 statsBuilder.setBucketStats(new ArrayList<BucketStats>());
\r
101 groupStats.add(statsBuilder.build());
\r
102 statsBuilder = new GroupStatsBuilder();
\r
103 statsBuilder.setByteCount(new BigInteger("1"));
\r
104 statsBuilder.setDurationNsec(2L);
\r
105 statsBuilder.setDurationSec(3L);
\r
106 statsBuilder.setGroupId(new GroupId(4L));
\r
107 statsBuilder.setPacketCount(new BigInteger("5"));
\r
108 statsBuilder.setRefCount(6L);
\r
109 statsBuilder.setBucketStats(new ArrayList<BucketStats>());
\r
110 groupStats.add(statsBuilder.build());
\r
112 Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
113 .GroupStats>> salGroupStatsOptional = convertorManager.convert(groupStats, new VersionConvertorData(OFConstants.OFP_VERSION_1_3));
\r
114 Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());
\r
115 List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
116 .GroupStats> salGroupStats = salGroupStatsOptional.get();
\r
118 Assert.assertEquals("Wrong group stats size", 2, salGroupStats.size());
\r
119 org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
120 .GroupStats stat = salGroupStats.get(0);
\r
121 Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());
\r
122 Assert.assertEquals("Wrong key", 42, stat.getKey().getGroupId().getValue().intValue());
\r
123 Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());
\r
124 Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());
\r
125 Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());
\r
126 Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());
\r
127 Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());
\r
128 Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());
\r
129 stat = salGroupStats.get(1);
\r
130 Assert.assertEquals("Wrong group-id", 4, stat.getGroupId().getValue().intValue());
\r
131 Assert.assertEquals("Wrong key", 4, stat.getKey().getGroupId().getValue().intValue());
\r
132 Assert.assertEquals("Wrong ref-count", 6, stat.getRefCount().getValue().intValue());
\r
133 Assert.assertEquals("Wrong packet count", 5, stat.getPacketCount().getValue().intValue());
\r
134 Assert.assertEquals("Wrong byte count", 1, stat.getByteCount().getValue().intValue());
\r
135 Assert.assertEquals("Wrong duration sec", 3, stat.getDuration().getSecond().getValue().intValue());
\r
136 Assert.assertEquals("Wrong duration n sec", 2, stat.getDuration().getNanosecond().getValue().intValue());
\r
137 Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());
\r
141 * Test GroupStats with buckets conversion
\r
144 public void testGroupStatsWithBuckets() {
\r
145 List<GroupStats> groupStats = new ArrayList<>();
\r
146 GroupStatsBuilder statsBuilder = new GroupStatsBuilder();
\r
147 statsBuilder.setByteCount(new BigInteger("12345"));
\r
148 statsBuilder.setDurationNsec(1000000L);
\r
149 statsBuilder.setDurationSec(5000L);
\r
150 statsBuilder.setGroupId(new GroupId(42L));
\r
151 statsBuilder.setPacketCount(new BigInteger("54321"));
\r
152 statsBuilder.setRefCount(24L);
\r
153 List<BucketStats> bucketStats = new ArrayList<>();
\r
154 BucketStatsBuilder bucketStatsBuilder = new BucketStatsBuilder();
\r
155 bucketStatsBuilder.setByteCount(new BigInteger("987"));
\r
156 bucketStatsBuilder.setPacketCount(new BigInteger("654"));
\r
157 bucketStats.add(bucketStatsBuilder.build());
\r
158 bucketStatsBuilder = new BucketStatsBuilder();
\r
159 bucketStatsBuilder.setByteCount(new BigInteger("123"));
\r
160 bucketStatsBuilder.setPacketCount(new BigInteger("456"));
\r
161 bucketStats.add(bucketStatsBuilder.build());
\r
162 statsBuilder.setBucketStats(bucketStats);
\r
163 groupStats.add(statsBuilder.build());
\r
165 Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
166 .GroupStats>> salGroupStatsOptional = convertorManager.convert(groupStats, new VersionConvertorData(OFConstants.OFP_VERSION_1_3));
\r
167 Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());
\r
168 List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
169 .GroupStats> salGroupStats = salGroupStatsOptional.get();
\r
171 Assert.assertEquals("Wrong group stats size", 1, salGroupStats.size());
\r
172 org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply
\r
173 .GroupStats stat = salGroupStats.get(0);
\r
174 Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());
\r
175 Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());
\r
176 Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());
\r
177 Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());
\r
178 Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());
\r
179 Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());
\r
180 Assert.assertEquals("Wrong bucket stats", 2, stat.getBuckets().getBucketCounter().size());
\r
181 List<BucketCounter> list = stat.getBuckets().getBucketCounter();
\r
182 Assert.assertEquals("Wrong bucket-id", 0, list.get(0).getBucketId().getValue().intValue());
\r
183 Assert.assertEquals("Wrong bucket packet count", 654, list.get(0).getPacketCount().getValue().intValue());
\r
184 Assert.assertEquals("Wrong bucket byte count", 987, list.get(0).getByteCount().getValue().intValue());
\r
185 Assert.assertEquals("Wrong bucket-id", 1, list.get(1).getBucketId().getValue().intValue());
\r
186 Assert.assertEquals("Wrong bucket packet count", 456, list.get(1).getPacketCount().getValue().intValue());
\r
187 Assert.assertEquals("Wrong bucket byte count", 123, list.get(1).getByteCount().getValue().intValue());
\r