Bug 5540 - GroupConvertor, GroupStatsConvertor, GroupDescStatsConvertor
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / GroupStatsResponseConvertorTest.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\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
7  */\r
8 \r
9 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;\r
10 \r
11 import java.math.BigInteger;\r
12 import java.util.ArrayList;\r
13 import java.util.List;\r
14 \r
15 import java.util.Optional;\r
16 import org.junit.Assert;\r
17 import org.junit.Test;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.buckets.BucketCounter;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.GroupId;\r
20 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
21 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
22 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
23 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
24 \r
25 /**\r
26  * @author michal.polkorab\r
27  *\r
28  */\r
29 public class GroupStatsResponseConvertorTest {\r
30 \r
31     /**\r
32      * Test empty GroupStats conversion\r
33      */\r
34     @Test\r
35     public void testEmptyGroupStats() {\r
36         List<GroupStats> groupStats = new ArrayList<>();\r
37 \r
38         Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
39                 .GroupStats>> salGroupStats = ConvertorManager.getInstance().convert(groupStats);\r
40 \r
41         Assert.assertFalse("Group stats response should be not present", salGroupStats.isPresent());\r
42     }\r
43 \r
44     /**\r
45      * Test single GroupStat conversion\r
46      */\r
47     @Test\r
48     public void testSingleGroupStat() {\r
49         List<GroupStats> groupStats = new ArrayList<>();\r
50         GroupStatsBuilder statsBuilder = new GroupStatsBuilder();\r
51         statsBuilder.setByteCount(new BigInteger("12345"));\r
52         statsBuilder.setDurationNsec(1000000L);\r
53         statsBuilder.setDurationSec(5000L);\r
54         statsBuilder.setGroupId(new GroupId(42L));\r
55         statsBuilder.setPacketCount(new BigInteger("54321"));\r
56         statsBuilder.setRefCount(24L);\r
57         statsBuilder.setBucketStats(new ArrayList<BucketStats>());\r
58         groupStats.add(statsBuilder.build());\r
59 \r
60         Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
61                 .GroupStats>> salGroupStatsOptional = ConvertorManager.getInstance().convert(groupStats);\r
62         Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());\r
63         List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
64                 .GroupStats> salGroupStats = salGroupStatsOptional.get();\r
65 \r
66         Assert.assertEquals("Wrong group stats size", 1, salGroupStats.size());\r
67         org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
68                 .GroupStats stat = salGroupStats.get(0);\r
69         Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());\r
70         Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());\r
71         Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());\r
72         Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());\r
73         Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());\r
74         Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());\r
75         Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());\r
76     }\r
77 \r
78     /**\r
79      * Test two GroupStats conversion\r
80      */\r
81     @Test\r
82     public void testTwoGroupStats() {\r
83         List<GroupStats> groupStats = new ArrayList<>();\r
84         GroupStatsBuilder statsBuilder = new GroupStatsBuilder();\r
85         statsBuilder.setByteCount(new BigInteger("12345"));\r
86         statsBuilder.setDurationNsec(1000000L);\r
87         statsBuilder.setDurationSec(5000L);\r
88         statsBuilder.setGroupId(new GroupId(42L));\r
89         statsBuilder.setPacketCount(new BigInteger("54321"));\r
90         statsBuilder.setRefCount(24L);\r
91         statsBuilder.setBucketStats(new ArrayList<BucketStats>());\r
92         groupStats.add(statsBuilder.build());\r
93         statsBuilder = new GroupStatsBuilder();\r
94         statsBuilder.setByteCount(new BigInteger("1"));\r
95         statsBuilder.setDurationNsec(2L);\r
96         statsBuilder.setDurationSec(3L);\r
97         statsBuilder.setGroupId(new GroupId(4L));\r
98         statsBuilder.setPacketCount(new BigInteger("5"));\r
99         statsBuilder.setRefCount(6L);\r
100         statsBuilder.setBucketStats(new ArrayList<BucketStats>());\r
101         groupStats.add(statsBuilder.build());\r
102 \r
103         Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
104                 .GroupStats>> salGroupStatsOptional = ConvertorManager.getInstance().convert(groupStats);\r
105         Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());\r
106         List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
107                 .GroupStats> salGroupStats = salGroupStatsOptional.get();\r
108 \r
109         Assert.assertEquals("Wrong group stats size", 2, salGroupStats.size());\r
110         org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
111                 .GroupStats stat = salGroupStats.get(0);\r
112         Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());\r
113         Assert.assertEquals("Wrong key", 42, stat.getKey().getGroupId().getValue().intValue());\r
114         Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());\r
115         Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());\r
116         Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());\r
117         Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());\r
118         Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());\r
119         Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());\r
120         stat = salGroupStats.get(1);\r
121         Assert.assertEquals("Wrong group-id", 4, stat.getGroupId().getValue().intValue());\r
122         Assert.assertEquals("Wrong key", 4, stat.getKey().getGroupId().getValue().intValue());\r
123         Assert.assertEquals("Wrong ref-count", 6, stat.getRefCount().getValue().intValue());\r
124         Assert.assertEquals("Wrong packet count", 5, stat.getPacketCount().getValue().intValue());\r
125         Assert.assertEquals("Wrong byte count", 1, stat.getByteCount().getValue().intValue());\r
126         Assert.assertEquals("Wrong duration sec", 3, stat.getDuration().getSecond().getValue().intValue());\r
127         Assert.assertEquals("Wrong duration n sec", 2, stat.getDuration().getNanosecond().getValue().intValue());\r
128         Assert.assertEquals("Wrong bucket stats", 0, stat.getBuckets().getBucketCounter().size());\r
129     }\r
130 \r
131     /**\r
132      * Test GroupStats with buckets conversion\r
133      */\r
134     @Test\r
135     public void testGroupStatsWithBuckets() {\r
136         List<GroupStats> groupStats = new ArrayList<>();\r
137         GroupStatsBuilder statsBuilder = new GroupStatsBuilder();\r
138         statsBuilder.setByteCount(new BigInteger("12345"));\r
139         statsBuilder.setDurationNsec(1000000L);\r
140         statsBuilder.setDurationSec(5000L);\r
141         statsBuilder.setGroupId(new GroupId(42L));\r
142         statsBuilder.setPacketCount(new BigInteger("54321"));\r
143         statsBuilder.setRefCount(24L);\r
144         List<BucketStats> bucketStats = new ArrayList<>();\r
145         BucketStatsBuilder bucketStatsBuilder = new BucketStatsBuilder();\r
146         bucketStatsBuilder.setByteCount(new BigInteger("987"));\r
147         bucketStatsBuilder.setPacketCount(new BigInteger("654"));\r
148         bucketStats.add(bucketStatsBuilder.build());\r
149         bucketStatsBuilder = new BucketStatsBuilder();\r
150         bucketStatsBuilder.setByteCount(new BigInteger("123"));\r
151         bucketStatsBuilder.setPacketCount(new BigInteger("456"));\r
152         bucketStats.add(bucketStatsBuilder.build());\r
153         statsBuilder.setBucketStats(bucketStats);\r
154         groupStats.add(statsBuilder.build());\r
155 \r
156         Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
157                 .GroupStats>> salGroupStatsOptional = ConvertorManager.getInstance().convert(groupStats);\r
158         Assert.assertTrue("Group stats response convertor not found", salGroupStatsOptional.isPresent());\r
159         List<org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
160                 .GroupStats> salGroupStats = salGroupStatsOptional.get();\r
161 \r
162         Assert.assertEquals("Wrong group stats size", 1, salGroupStats.size());\r
163         org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.statistics.reply\r
164                 .GroupStats stat = salGroupStats.get(0);\r
165         Assert.assertEquals("Wrong group-id", 42, stat.getGroupId().getValue().intValue());\r
166         Assert.assertEquals("Wrong ref-count", 24, stat.getRefCount().getValue().intValue());\r
167         Assert.assertEquals("Wrong packet count", 54321, stat.getPacketCount().getValue().intValue());\r
168         Assert.assertEquals("Wrong byte count", 12345, stat.getByteCount().getValue().intValue());\r
169         Assert.assertEquals("Wrong duration sec", 5000, stat.getDuration().getSecond().getValue().intValue());\r
170         Assert.assertEquals("Wrong duration n sec", 1000000, stat.getDuration().getNanosecond().getValue().intValue());\r
171         Assert.assertEquals("Wrong bucket stats", 2, stat.getBuckets().getBucketCounter().size());\r
172         List<BucketCounter> list = stat.getBuckets().getBucketCounter();\r
173         Assert.assertEquals("Wrong bucket-id", 0, list.get(0).getBucketId().getValue().intValue());\r
174         Assert.assertEquals("Wrong bucket packet count", 654, list.get(0).getPacketCount().getValue().intValue());\r
175         Assert.assertEquals("Wrong bucket byte count", 987, list.get(0).getByteCount().getValue().intValue());\r
176         Assert.assertEquals("Wrong bucket-id", 1, list.get(1).getBucketId().getValue().intValue());\r
177         Assert.assertEquals("Wrong bucket packet count", 456, list.get(1).getPacketCount().getValue().intValue());\r
178         Assert.assertEquals("Wrong bucket byte count", 123, list.get(1).getByteCount().getValue().intValue());\r
179     }\r
180 }\r