Adding test for LongBandwidth
Change-Id: I4e2833eeb4204510c63340a5d23e19768a5d343e
diff --git a/utils/misc/src/test/java/org/onlab/util/LongBandwidthTest.java b/utils/misc/src/test/java/org/onlab/util/LongBandwidthTest.java
new file mode 100644
index 0000000..f44788b
--- /dev/null
+++ b/utils/misc/src/test/java/org/onlab/util/LongBandwidthTest.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright 2015-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onlab.util;
+
+import org.junit.Test;
+
+import static org.hamcrest.Matchers.greaterThan;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.lessThan;
+import static org.junit.Assert.*;
+
+/**
+ * Unit tests for LongBandwidth.
+ */
+public class LongBandwidthTest {
+ private final long billion = 1000000000;
+ private final long one = 1;
+
+ //These are LongBandwidth objects because if a Bandwidth object is passed a
+ //long parameter it becomes a LongBandwidth object
+ Bandwidth notLongSmall = Bandwidth.kbps(1.0);
+ private final Bandwidth notLongBig = Bandwidth.kbps(1000.0);
+ private final Bandwidth big = Bandwidth.kbps(billion);
+ private final Bandwidth small = Bandwidth.kbps(one);
+
+ /**
+ * Tests the getter method of LongBandwidths.
+ */
+ @Test
+ public void testBps() {
+ Bandwidth expected = Bandwidth.bps(one);
+
+ assertEquals(one, expected.bps(), 0.0);
+ }
+
+ /**
+ * Tests add operation of two LongBandwidths and two Bandwidths.
+ */
+ @Test
+ public void testAdd() {
+ final long add = billion + one;
+ Bandwidth expected = Bandwidth.kbps(add);
+
+ assertThat(big.add(small), is(expected));
+
+ final double notLongAdd = 1001.0;
+ Bandwidth notLongExpected = Bandwidth.kbps(notLongAdd);
+
+ assertThat(notLongSmall.add(notLongBig), is(notLongExpected));
+ }
+
+ /**
+ * Tests subtract operation of two LongBandwidths and two Bandwidths.
+ */
+ @Test
+ public void testSubtract() {
+ final long sub = billion - one;
+ Bandwidth expected = Bandwidth.kbps(sub);
+
+ assertThat(big.subtract(small), is(expected));
+
+ final double notLongSubtract = 999.0;
+ Bandwidth notLongExpected = Bandwidth.kbps(notLongSubtract);
+
+ assertThat(notLongBig.subtract(notLongSmall), is(notLongExpected));
+ }
+
+
+ /**
+ * Tests if the first object is less than the second object, and then it
+ * tests if the compareTo function works correctly if comparing a smaller
+ * object to a larger one, and vice versa.
+ * Also tests the same thing but with Bandwidth objects.
+ */
+ @Test
+ public void testLessThan() {
+
+ assertThat(small, is(lessThan(big)));
+ assertThat(small.compareTo(big), is(-1));
+
+ assertThat(big, is(greaterThan(small)));
+ assertThat(big.compareTo(small), is(1));
+
+ assertThat(notLongSmall, is(lessThan(notLongBig)));
+ assertThat(notLongSmall.compareTo(notLongBig), is(-1));
+
+ assertThat(notLongBig, is(greaterThan(notLongSmall)));
+ assertThat(notLongBig.compareTo(notLongSmall), is(1));
+ }
+
+ /**
+ * Tests the equals function between itself, another equivalent Bandwidth
+ * object, a nonequivalent Bandwidth object, and an int.
+ */
+ @Test
+ public void testEquals() {
+ Bandwidth expected = Bandwidth.kbps(one);
+ assertFalse(small.equals(big));
+ assertTrue(small.equals(expected));
+ assertTrue(small.equals(small));
+ assertFalse(small.equals(1000));
+ }
+
+ /**
+ * Tests the hashcode function of a LongBandwidth.
+ */
+ @Test
+ public void testHashCode() {
+ Long expected = (one * 1000);
+ assertEquals(small.hashCode(), expected.hashCode());
+ }
+
+ /**
+ * Tests the toString function of a LongBandwidth.
+ */
+ @Test
+ public void testToString() {
+ String expected = "1000";
+ assertEquals(small.toString(), expected);
+ }
+}