Refactor criterion codec
The previous implementation was a huge switch statement. These changes attempt to use polymorphism to avoid all of the branching inherent in a switch. Change-Id: If997f028346de02b883356bcde07f62674e319be
Showing
2 changed files
with
46 additions
and
0 deletions
This diff is collapsed. Click to expand it.
1 | +/* | ||
2 | + * Copyright 2015 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 | + */ | ||
16 | +package org.onosproject.codec.impl; | ||
17 | + | ||
18 | +import java.util.EnumMap; | ||
19 | + | ||
20 | +import org.junit.Test; | ||
21 | +import org.onosproject.net.flow.criteria.Criterion; | ||
22 | + | ||
23 | +import static org.onlab.junit.TestUtils.getField; | ||
24 | +import static org.hamcrest.MatcherAssert.assertThat; | ||
25 | +import static org.hamcrest.Matchers.*; | ||
26 | + | ||
27 | +/** | ||
28 | + * Unit tests for criterion codec. | ||
29 | + */ | ||
30 | +public class CriterionCodecTest { | ||
31 | + | ||
32 | + /** | ||
33 | + * Checks that all criterion types are covered by the codec. | ||
34 | + */ | ||
35 | + @Test | ||
36 | + public void checkCriterionTypes() throws Exception { | ||
37 | + CriterionCodec codec = new CriterionCodec(); | ||
38 | + EnumMap<Criterion.Type, Object> formatMap = getField(codec, "formatMap"); | ||
39 | + assertThat(formatMap, notNullValue()); | ||
40 | + | ||
41 | + for (Criterion.Type type : Criterion.Type.values()) { | ||
42 | + assertThat("Entry not found for " + type.toString(), | ||
43 | + formatMap.get(type), notNullValue()); | ||
44 | + } | ||
45 | + } | ||
46 | +} |
-
Please register or login to post a comment