diff options
Diffstat (limited to 'framework/src/onos/core/api/src/test/java/org/onosproject/ui/topo/LinkHighlightTest.java')
-rw-r--r-- | framework/src/onos/core/api/src/test/java/org/onosproject/ui/topo/LinkHighlightTest.java | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/framework/src/onos/core/api/src/test/java/org/onosproject/ui/topo/LinkHighlightTest.java b/framework/src/onos/core/api/src/test/java/org/onosproject/ui/topo/LinkHighlightTest.java new file mode 100644 index 00000000..205f08ce --- /dev/null +++ b/framework/src/onos/core/api/src/test/java/org/onosproject/ui/topo/LinkHighlightTest.java @@ -0,0 +1,116 @@ +/* + * Copyright 2015 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.onosproject.ui.topo; + +import org.junit.Test; + +import java.util.Iterator; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.onosproject.ui.topo.LinkHighlight.Flavor.*; + +/** + * Unit tests for {@link LinkHighlight}. + */ +public class LinkHighlightTest { + + private static final String LINK_ID = "link-id-for-testing"; + private static final String LABEL = "some label"; + private static final String EMPTY = ""; + private static final String CUSTOM = "custom"; + private static final String ANIMATED = "animated"; + private static final String OPTICAL = "optical"; + + private LinkHighlight lh; + + @Test + public void basic() { + lh = new LinkHighlight(LINK_ID, NO_HIGHLIGHT); + + assertEquals("wrong flavor", NO_HIGHLIGHT, lh.flavor()); + assertTrue("unexpected mods", lh.mods().isEmpty()); + assertEquals("wrong css", "plain", lh.cssClasses()); + assertEquals("wrong label", EMPTY, lh.label()); + } + + @Test + public void primaryOptical() { + lh = new LinkHighlight(LINK_ID, PRIMARY_HIGHLIGHT) + .addMod(LinkHighlight.MOD_OPTICAL); + + assertEquals("wrong flavor", PRIMARY_HIGHLIGHT, lh.flavor()); + assertEquals("missing mod", 1, lh.mods().size()); + Mod m = lh.mods().iterator().next(); + assertEquals("wrong mod", LinkHighlight.MOD_OPTICAL, m); + assertEquals("wrong css", "primary optical", lh.cssClasses()); + assertEquals("wrong label", EMPTY, lh.label()); + } + + @Test + public void secondaryAnimatedWithLabel() { + lh = new LinkHighlight(LINK_ID, SECONDARY_HIGHLIGHT) + .addMod(LinkHighlight.MOD_ANIMATED) + .setLabel(LABEL); + + assertEquals("wrong flavor", SECONDARY_HIGHLIGHT, lh.flavor()); + assertEquals("missing mod", 1, lh.mods().size()); + Mod m = lh.mods().iterator().next(); + assertEquals("wrong mod", LinkHighlight.MOD_ANIMATED, m); + assertEquals("wrong css", "secondary animated", lh.cssClasses()); + assertEquals("wrong label", LABEL, lh.label()); + } + + @Test + public void customMod() { + lh = new LinkHighlight(LINK_ID, PRIMARY_HIGHLIGHT) + .addMod(new Mod(CUSTOM)); + + assertEquals("missing mod", 1, lh.mods().size()); + Mod m = lh.mods().iterator().next(); + assertEquals("wrong mod", CUSTOM, m.toString()); + assertEquals("wrong css", "primary custom", lh.cssClasses()); + } + + @Test + public void severalMods() { + lh = new LinkHighlight(LINK_ID, SECONDARY_HIGHLIGHT) + .addMod(LinkHighlight.MOD_OPTICAL) + .addMod(LinkHighlight.MOD_ANIMATED) + .addMod(new Mod(CUSTOM)); + + assertEquals("missing mods", 3, lh.mods().size()); + Iterator<Mod> iter = lh.mods().iterator(); + // NOTE: we know we are using TreeSet as backing => sorted order + assertEquals("wrong mod", ANIMATED, iter.next().toString()); + assertEquals("wrong mod", CUSTOM, iter.next().toString()); + assertEquals("wrong mod", OPTICAL, iter.next().toString()); + assertEquals("wrong css", "secondary animated custom optical", lh.cssClasses()); + } + + @Test(expected = NullPointerException.class) + public void noFlavor() { + new LinkHighlight(LINK_ID, null); + } + + @Test(expected = NullPointerException.class) + public void noIdentity() { + new LinkHighlight(null, PRIMARY_HIGHLIGHT); + } + +} |