/*
* Copyright (C) 2013 lichtflut Forschungs- und Entwicklungsgesellschaft mbH
*
* 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.arastreju.sge.traverse;
import org.arastreju.sge.model.SimpleResourceID;
import org.arastreju.sge.model.nodes.ResourceNode;
import org.arastreju.sge.model.nodes.SNResource;
import org.arastreju.sge.model.nodes.ValueNode;
import org.arastreju.sge.model.nodes.views.SNText;
import org.junit.Assert;
import org.junit.Test;
/**
* <p>
* Test cases for Walkers.
* </p>
*
* <p>
* Created Jun 26, 2012
* </p>
*
* @author Oliver Tigges
*/
public class WalkerTest {
@Test
public void shouldWalkRightWay() {
SimpleResourceID pred1 = new SimpleResourceID("http://lichtflut.de/pred1");
SimpleResourceID pred2 = new SimpleResourceID("http://lichtflut.de/pred2");
ResourceNode node0 = new SNResource();
ResourceNode node1 = new SNResource();
ResourceNode node2 = new SNResource();
node0.addAssociation(pred1, node1);
node0.addAssociation(pred2, node2);
Walker walker = Walker.start(node0).walk(pred1);
Assert.assertFalse(walker.isEmpty());
Assert.assertEquals(1, walker.size());
Assert.assertTrue(walker.matches(node1));
Assert.assertFalse(walker.matches(node2));
Assert.assertFalse(walker.matches("hello"));
}
@Test
public void shouldHandleMissingNodesWithoutException() {
ResourceNode node = new SNResource();
Walker walker = Walker.start(node).walk(new SimpleResourceID("http://does.not.exist/xyz"));
Assert.assertTrue(walker.isEmpty());
Assert.assertEquals(0, walker.size());
Assert.assertFalse(walker.matches(new SimpleResourceID()));
Assert.assertFalse(walker.matches("hello"));
}
@Test
public void valueNodesCanBeTestedAgainstResources() {
ValueNode node = new SNText("anything");
Walker walker = Walker.start(node).walk(new SimpleResourceID("http://does.not.exist/xyz"));
Assert.assertTrue(walker.isEmpty());
Assert.assertEquals(0, walker.size());
Assert.assertFalse(walker.matches(new SimpleResourceID()));
Assert.assertFalse(walker.matches("hello"));
}
@Test
public void resourceNodesCanBeTestedAgainstValues() {
ResourceNode resource = new SNResource();
Walker walker = Walker.start(resource).walk(new SimpleResourceID("http://does.not.exist/xyz"));
Assert.assertTrue(walker.isEmpty());
Assert.assertEquals(0, walker.size());
Assert.assertFalse(walker.matches(new SimpleResourceID()));
Assert.assertFalse(walker.matches("hello"));
}
}