Simon Hunt

GUI -- Table Model et al -- added missing unit tests.

Change-Id: Icc77457cab5b79724fcb5b354c2d74f2b2690d89
...@@ -267,6 +267,38 @@ public class TableModelTest { ...@@ -267,6 +267,38 @@ public class TableModelTest {
267 } 267 }
268 } 268 }
269 269
270 + private static final String[][] SORTED_NAMES_AND_HEX = {
271 + {ELEVEN, "0xb"},
272 + {FOUR, "0x4"},
273 + {ONE, "0x1"},
274 + {THIRTY, "0x1e"},
275 + {THREE, "0x3"},
276 + {TWELVE, "0xc"},
277 + {TWENTY, "0x14"},
278 + {TWO, "0x2"},
279 + };
280 +
281 + @Test
282 + public void sortAndFormatTwo() {
283 + initUnsortedTable();
284 + tm.setFormatter(BAR, HexFormatter.INSTANCE);
285 + tm.sort(FOO, SortDir.ASC);
286 + rows = tm.getRows();
287 + int nr = rows.length;
288 + for (int i = 0; i < nr; i++) {
289 + String[] exp = SORTED_NAMES_AND_HEX[i];
290 + String[] act = rows[i].getAsFormattedStrings();
291 + assertArrayEquals(UNEX_SORT + i, exp, act);
292 + }
293 + }
294 +
295 + private static final String[] FBZ = {FOO, BAR, ZOO};
296 +
297 + @Test
298 + public void getColumnIds() {
299 + tm = new TableModel(FOO, BAR, ZOO);
300 + assertArrayEquals("col IDs", FBZ, tm.getColumnIds());
301 + }
270 302
271 @Test 303 @Test
272 public void sortDirAsc() { 304 public void sortDirAsc() {
......
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 + */
17 +
18 +package org.onosproject.ui.table;
19 +
20 +import com.fasterxml.jackson.databind.node.ArrayNode;
21 +import org.junit.Assert;
22 +import org.junit.Test;
23 +
24 +/**
25 + * Unit tests for {@link TableUtils}.
26 + */
27 +public class TableUtilsTest {
28 +
29 + private static final String FOO = "foo";
30 + private static final String BAR = "bar";
31 +
32 + private static final String ARRAY_AS_STRING =
33 + "[{\"foo\":\"1\",\"bar\":\"2\"},{\"foo\":\"3\",\"bar\":\"4\"}]";
34 +
35 + @Test
36 + public void basic() {
37 + TableModel tm = new TableModel(FOO, BAR);
38 + tm.addRow().cell(FOO, 1).cell(BAR, 2);
39 + tm.addRow().cell(FOO, 3).cell(BAR, 4);
40 +
41 + ArrayNode array = TableUtils.generateArrayNode(tm);
42 + Assert.assertEquals("wrong results", ARRAY_AS_STRING, array.toString());
43 + }
44 +
45 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.ui.table.CellComparator;
22 +
23 +import static org.junit.Assert.assertTrue;
24 +
25 +/**
26 + * Unit tests for {@link AbstractCellComparator}.
27 + */
28 +public class AbstractCellComparatorTest {
29 +
30 + private static class Concrete extends AbstractCellComparator {
31 + @Override
32 + protected int nonNullCompare(Object o1, Object o2) {
33 + return 42;
34 + }
35 + }
36 +
37 + private CellComparator cmp = new Concrete();
38 +
39 + @Test
40 + public void twoNullArgs() {
41 + assertTrue("two nulls", cmp.compare(null, null) == 0);
42 + }
43 +
44 + @Test
45 + public void nullArgOne() {
46 + assertTrue("null one", cmp.compare(null, 1) < 0);
47 + }
48 +
49 + @Test
50 + public void nullArgTwo() {
51 + assertTrue("null two", cmp.compare(1, null) > 0);
52 + }
53 +
54 + // mock output, but check that our method was invoked...
55 + @Test
56 + public void noNulls() {
57 + assertTrue("no Nulls", cmp.compare(1, 2) == 42);
58 + }
59 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.ui.table.CellFormatter;
22 +
23 +import static org.junit.Assert.assertEquals;
24 +
25 +/**
26 + * Unit tests for {@link AbstractCellFormatter}.
27 + */
28 +public class AbstractCellFormatterTest {
29 +
30 + private static final String MOCK_OUTPUT = "Mock!!";
31 +
32 + private static class Concrete extends AbstractCellFormatter {
33 + @Override
34 + protected String nonNullFormat(Object value) {
35 + return MOCK_OUTPUT;
36 + }
37 + }
38 +
39 + private CellFormatter frm = new Concrete();
40 +
41 + @Test
42 + public void nullInput() {
43 + assertEquals("wrong result", "", frm.format(null));
44 + }
45 +
46 + // mock output, but check that our method was invoked...
47 + @Test
48 + public void nonNullInput() {
49 + assertEquals("what?", MOCK_OUTPUT, frm.format(1));
50 + }
51 +
52 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.core.ApplicationId;
22 +import org.onosproject.ui.table.CellFormatter;
23 +
24 +import static org.junit.Assert.assertEquals;
25 +
26 +/**
27 + * Unit tests for {@link AppIdFormatter}.
28 + */
29 +public class AppIdFormatterTest {
30 +
31 + private static final ApplicationId APP_ID = new ApplicationId() {
32 + @Override
33 + public short id() {
34 + return 25;
35 + }
36 +
37 + @Override
38 + public String name() {
39 + return "some app";
40 + }
41 + };
42 +
43 + private CellFormatter fmt = AppIdFormatter.INSTANCE;
44 +
45 + @Test
46 + public void basic() {
47 + assertEquals("wrong format", "25 : some app", fmt.format(APP_ID));
48 + }
49 +
50 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.net.ConnectPoint;
22 +import org.onosproject.net.DeviceId;
23 +import org.onosproject.net.PortNumber;
24 +import org.onosproject.ui.table.CellFormatter;
25 +
26 +import static org.junit.Assert.assertEquals;
27 +
28 +/**
29 + * Unit tests for {@link ConnectPointFormatter}.
30 + */
31 +public class ConnectPointFormatterTest {
32 +
33 + private static final DeviceId DEVID = DeviceId.deviceId("foobar");
34 + private static final PortNumber PORT = PortNumber.portNumber(42);
35 +
36 + private static final ConnectPoint CP = new ConnectPoint(DEVID, PORT);
37 +
38 + private CellFormatter fmt = ConnectPointFormatter.INSTANCE;
39 +
40 + @Test
41 + public void basic() {
42 + assertEquals("wrong format", "foobar/42", fmt.format(CP));
43 + }
44 +
45 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.net.DeviceId;
22 +import org.onosproject.net.HostLocation;
23 +import org.onosproject.net.PortNumber;
24 +import org.onosproject.ui.table.CellFormatter;
25 +
26 +import static org.junit.Assert.assertEquals;
27 +
28 +/**
29 + * Unit tests for {@link HostLocationFormatter}.
30 + */
31 +public class HostLocationFormatterTest {
32 +
33 + private static final DeviceId DEVID = DeviceId.deviceId("foobar");
34 + private static final PortNumber PORT = PortNumber.portNumber(42);
35 + private static final long TIME = 12345;
36 +
37 + private static final HostLocation LOC = new HostLocation(DEVID, PORT, TIME);
38 +
39 + private CellFormatter fmt = HostLocationFormatter.INSTANCE;
40 +
41 + @Test
42 + public void basic() {
43 + assertEquals("wrong format", "foobar/42", fmt.format(LOC));
44 + }
45 +
46 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.junit.Test;
21 +import org.onosproject.ui.table.CellComparator;
22 +
23 +import static org.junit.Assert.assertTrue;
24 +
25 +/**
26 + * Unit tests for {@link LongComparator}.
27 + */
28 +public class LongComparatorTest {
29 +
30 + private CellComparator cmp = LongComparator.INSTANCE;
31 +
32 + @Test
33 + public void twoNulls() {
34 + assertTrue("two nulls", cmp.compare(null, null) == 0);
35 + }
36 +
37 + @Test
38 + public void nullVsNegValue() {
39 + assertTrue("null vs neg value", cmp.compare(null, -5L) < 0);
40 + }
41 +
42 + @Test
43 + public void nullVsPosValue() {
44 + assertTrue("null vs pos value", cmp.compare(null, 5L) < 0);
45 + }
46 +
47 + @Test
48 + public void negValueVsNull() {
49 + assertTrue("neg value vs null", cmp.compare(-5L, null) > 0);
50 + }
51 +
52 + @Test
53 + public void posValueVsNull() {
54 + assertTrue("pos value vs null", cmp.compare(5L, null) > 0);
55 + }
56 +
57 +
58 + @Test
59 + public void smallVsBig() {
60 + assertTrue("small vs big", cmp.compare(25L, 75L) < 0);
61 + }
62 +
63 + @Test
64 + public void bigVsSmall() {
65 + assertTrue("big vs small", cmp.compare(75L, 25L) > 0);
66 + }
67 +
68 + @Test
69 + public void sameValue() {
70 + assertTrue("same value", cmp.compare(50L, 50L) == 0);
71 + }
72 +}
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 + */
17 +
18 +package org.onosproject.ui.table.cell;
19 +
20 +import org.joda.time.DateTime;
21 +import org.junit.Test;
22 +import org.onosproject.ui.table.CellFormatter;
23 +
24 +import static org.junit.Assert.assertEquals;
25 +
26 +/**
27 + * Unit tests for {@link TimeFormatter}.
28 + */
29 +public class TimeFormatterTest {
30 +
31 + private static final DateTime TIME = DateTime.parse("2010-06-30T01:20");
32 + private static final String EXP_OUTPUT = "1:20:00 AM PDT";
33 +
34 + private CellFormatter fmt = TimeFormatter.INSTANCE;
35 +
36 + @Test
37 + public void basic() {
38 + assertEquals("wrong format", EXP_OUTPUT, fmt.format(TIME));
39 + }
40 +}