[WIP][ONOS-3722] Augment TableModel with Annotations Mechanism
Change-Id: I815ce0b0fde254dd730153c34905d9454f019d9a
diff --git a/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java b/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
index 7524bcb..8c79a05 100644
--- a/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
+++ b/core/api/src/test/java/org/onosproject/ui/table/TableModelTest.java
@@ -21,6 +21,8 @@
import org.onosproject.ui.table.cell.DefaultCellFormatter;
import org.onosproject.ui.table.cell.HexFormatter;
+import java.util.Collection;
+
import static org.junit.Assert.*;
/**
@@ -122,7 +124,6 @@
assertEquals("bad cell", true, row.get(BAR));
}
-
private static final String ONE = "one";
private static final String TWO = "two";
private static final String THREE = "three";
@@ -313,7 +314,6 @@
assertEquals("null sort dir", SortDir.ASC, TableModel.sortDir(null));
}
-
@Test
public void enumSort() {
tm = new TableModel(FOO);
@@ -335,4 +335,83 @@
assertEquals(UNEX_SORT + i, ordered[i], rows[i].get(FOO));
}
}
+
+ @Test
+ public void stringAnnotation() {
+ tm = new TableModel(FOO);
+ tm.addAnnotation(BAR, ZOO);
+ Collection<TableModel.Annot> annots = tm.getAnnotations();
+ assertEquals("wrong size", 1, annots.size());
+
+ TableModel.Annot annot = annots.iterator().next();
+ assertEquals("wrong key", BAR, annot.key());
+ assertEquals("wrong value", ZOO, annot.value());
+ }
+
+ private static final String K_INT = "int";
+ private static final String K_BOOL = "bool";
+ private static final String K_FLOAT = "float";
+ private static final String K_DOUBLE = "double";
+ private static final String K_ENUM = "enum";
+
+ private TableModel.Annot getAnnotation(Collection<TableModel.Annot> annots, String key) {
+ final TableModel.Annot[] annot = {null};
+ annots.forEach(a -> {
+ if (a.key().equals(key)) {
+ annot[0] = a;
+ }
+ });
+ return annot[0];
+ }
+
+ private void verifyCollectionContains(Collection<TableModel.Annot> annots,
+ String key, int i) {
+ TableModel.Annot a = getAnnotation(annots, key);
+ assertEquals("wrong int value", i, a.value());
+ }
+
+ private void verifyCollectionContains(Collection<TableModel.Annot> annots,
+ String key, boolean b) {
+ TableModel.Annot a = getAnnotation(annots, key);
+ assertEquals("wrong boolean value", b, a.value());
+ }
+
+ private void verifyCollectionContains(Collection<TableModel.Annot> annots,
+ String key, float f) {
+ TableModel.Annot a = getAnnotation(annots, key);
+ assertEquals("wrong float value", f, a.value());
+ }
+
+ private void verifyCollectionContains(Collection<TableModel.Annot> annots,
+ String key, double d) {
+ TableModel.Annot a = getAnnotation(annots, key);
+ assertEquals("wrong double value", d, a.value());
+ }
+
+ private void verifyCollectionContains(Collection<TableModel.Annot> annots,
+ String key, Enum<?> e) {
+ TableModel.Annot a = getAnnotation(annots, key);
+ assertEquals("wrong double value", e, a.value());
+ }
+
+ @Test
+ public void primitivesAnnotation() {
+ tm = new TableModel(FOO);
+ tm.addAnnotation(K_INT, 1);
+ tm.addAnnotation(K_BOOL, true);
+ tm.addAnnotation(K_FLOAT, 3.14f);
+ tm.addAnnotation(K_DOUBLE, 2.71828);
+ tm.addAnnotation(K_ENUM, StarWars.LUKE_SKYWALKER);
+
+ Collection<TableModel.Annot> annots = tm.getAnnotations();
+ assertEquals("wrong size", 5, annots.size());
+
+ verifyCollectionContains(annots, K_INT, 1);
+ verifyCollectionContains(annots, K_BOOL, true);
+ verifyCollectionContains(annots, K_FLOAT, 3.14f);
+ verifyCollectionContains(annots, K_DOUBLE, 2.71828);
+ verifyCollectionContains(annots, K_ENUM, StarWars.LUKE_SKYWALKER);
+ }
+
+ // TODO: add support for compound object value
}
diff --git a/core/api/src/test/java/org/onosproject/ui/table/TableUtilsTest.java b/core/api/src/test/java/org/onosproject/ui/table/TableUtilsTest.java
index 4456dd3..66ac647 100644
--- a/core/api/src/test/java/org/onosproject/ui/table/TableUtilsTest.java
+++ b/core/api/src/test/java/org/onosproject/ui/table/TableUtilsTest.java
@@ -37,7 +37,7 @@
tm.addRow().cell(FOO, 1).cell(BAR, 2);
tm.addRow().cell(FOO, 3).cell(BAR, 4);
- ArrayNode array = TableUtils.generateArrayNode(tm);
+ ArrayNode array = TableUtils.generateRowArrayNode(tm);
Assert.assertEquals("wrong results", ARRAY_AS_STRING, array.toString());
}