package org.vaadin.elements; import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class RegisterTest { @Tag("exclusive") public static interface ExclusiveElement extends Element { } @Tag(value = "non-exclusive", exclusive = false) public static interface NonExclusiveElement extends Element { } @Before public void init() { Elements.clearRegistration(); } @Test public void testRegisterExlusive() { Elements.registerElement(ExclusiveElement.class); Element element = Elements.create("exclusive"); Assert.assertTrue(element instanceof ExclusiveElement); } @Test public void testWithoutRegister() { Element element = Elements.create("exclusive"); Assert.assertFalse(element instanceof ExclusiveElement); } @Test public void testImplicitRegister() { Element element = Elements.create(ExclusiveElement.class); Assert.assertTrue(element instanceof ExclusiveElement); } @Test public void testNonExclusiveCreation() { Element element = Elements.create(NonExclusiveElement.class); Assert.assertTrue(element instanceof NonExclusiveElement); } @Test public void testNonExclusive_notRegistered() { Element element = Elements.create(NonExclusiveElement.class); element = Elements.create(element.getTag()); Assert.assertFalse(element instanceof NonExclusiveElement); } }