package com.github.anno4j.model.impl.targets; import com.github.anno4j.Anno4j; import com.github.anno4j.model.Annotation; import com.github.anno4j.model.State; import com.github.anno4j.model.impl.ResourceObject; import com.github.anno4j.model.impl.state.HttpRequestState; import com.github.anno4j.model.impl.state.TimeState; import org.junit.Before; import org.junit.Test; import org.openrdf.repository.RepositoryException; import java.util.HashSet; import static org.junit.Assert.*; /** * Test suite for the SpecificResource interface. */ public class SpecificResourceTest { private Anno4j anno4j; @Before public void setUp() throws Exception { this.anno4j = new Anno4j(); } @Test public void testStyleClass() throws RepositoryException, IllegalAccessException, InstantiationException { Annotation annotation = this.anno4j.createObject(Annotation.class); SpecificResource specificResource = this.anno4j.createObject(SpecificResource.class); annotation.addTarget(specificResource); Annotation result = this.anno4j.findByID(Annotation.class, annotation.getResourceAsString()); assertEquals(0, ((SpecificResource) result.getTargets().iterator().next()).getStyleClasses().size()); specificResource.addStyleClass("red"); result = this.anno4j.findByID(Annotation.class, annotation.getResourceAsString()); assertEquals(1, ((SpecificResource) result.getTargets().iterator().next()).getStyleClasses().size()); HashSet<String> styleClasses = new HashSet<>(); styleClasses.add("green"); styleClasses.add("blue"); specificResource.setStyleClasses(styleClasses); result = this.anno4j.findByID(Annotation.class, annotation.getResourceAsString()); assertEquals(2, ((SpecificResource) result.getTargets().iterator().next()).getStyleClasses().size()); } @Test public void testStates() throws RepositoryException, IllegalAccessException, InstantiationException { SpecificResource specificResource = this.anno4j.createObject(SpecificResource.class); SpecificResource result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(0, result.getStates().size()); specificResource.addState(this.anno4j.createObject(TimeState.class)); result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(1, result.getStates().size()); HashSet<State> states = new HashSet<>(); states.add(this.anno4j.createObject(HttpRequestState.class)); states.add(this.anno4j.createObject(HttpRequestState.class)); specificResource.setStates(states); result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(2, result.getStates().size()); } @Test public void testRenderedVia() throws RepositoryException, IllegalAccessException, InstantiationException { SpecificResource specificResource = this.anno4j.createObject(SpecificResource.class); SpecificResource result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(0, result.getRenderedVia().size()); specificResource.addRenderedVia(this.anno4j.createObject(ResourceObject.class)); result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(1, result.getRenderedVia().size()); HashSet<ResourceObject> rendered = new HashSet<>(); rendered.add(this.anno4j.createObject(ResourceObject.class)); rendered.add(this.anno4j.createObject(ResourceObject.class)); specificResource.setRenderedVia(rendered); result = this.anno4j.findByID(SpecificResource.class, specificResource.getResourceAsString()); assertEquals(2, result.getRenderedVia().size()); } }