
com.tinkerpop.gremlin.process.graph.step.sideEffect.SideEffectTest Maven / Gradle / Ivy
The newest version!
package com.tinkerpop.gremlin.process.graph.step.sideEffect;
import com.tinkerpop.gremlin.AbstractGremlinTest;
import com.tinkerpop.gremlin.LoadGraphWith;
import com.tinkerpop.gremlin.process.Traversal;
import com.tinkerpop.gremlin.structure.Vertex;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import static com.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
import static org.junit.Assert.*;
/**
* @author Marko A. Rodriguez (http://markorodriguez.com)
* @author Stephen Mallette (http://stephen.genoprime.com)
*/
public abstract class SideEffectTest extends AbstractGremlinTest {
public abstract Traversal get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id);
public abstract Traversal get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id);
public abstract Traversal get_g_VX1X_out_sideEffectXX_name(final Object v1Id);
@Test
@LoadGraphWith(MODERN)
public void g_VX1X_sideEffectXstore_aX_name() {
final Traversal traversal = get_g_VX1X_sideEffectXstore_aX_name(convertToVertexId("marko"));
printTraversalForm(traversal);
assertEquals(traversal.next(), "marko");
assertFalse(traversal.hasNext());
assertEquals(convertToVertexId("marko"), traversal.asAdmin().getSideEffects().>get("a").get(0).id());
}
@Test
@LoadGraphWith(MODERN)
public void g_VX1X_out_sideEffectXincr_cX_name() {
final Traversal traversal = get_g_VX1X_out_sideEffectXincr_cX_name(convertToVertexId("marko"));
printTraversalForm(traversal);
assert_g_v1_out_sideEffectXincr_cX_valueXnameX(traversal);
assertEquals(new Integer(3), traversal.asAdmin().getSideEffects().>get("c").get(0));
}
private void assert_g_v1_out_sideEffectXincr_cX_valueXnameX(final Iterator traversal) {
final List names = new ArrayList<>();
while (traversal.hasNext()) {
names.add(traversal.next());
}
assertEquals(3, names.size());
assertTrue(names.contains("josh"));
assertTrue(names.contains("lop"));
assertTrue(names.contains("vadas"));
}
@Test
@LoadGraphWith(MODERN)
public void g_VX1X_out_sideEffectXX_name() {
final Traversal traversal = get_g_VX1X_out_sideEffectXX_name(convertToVertexId("marko"));
printTraversalForm(traversal);
assert_g_v1_out_sideEffectXincr_cX_valueXnameX(traversal);
}
public static class StandardTest extends SideEffectTest {
@Override
public Traversal get_g_VX1X_sideEffectXstore_aX_name(final Object v1Id) {
return g.V(v1Id).withSideEffect("a", ArrayList::new).sideEffect(traverser -> {
traverser.sideEffects("a").clear();
traverser.>sideEffects("a").add(traverser.get());
}).values("name");
}
@Override
public Traversal get_g_VX1X_out_sideEffectXincr_cX_name(final Object v1Id) {
return g.V(v1Id).withSideEffect("c", () -> {
final List list = new ArrayList<>();
list.add(0);
return list;
}).out().sideEffect(traverser -> {
Integer temp = traverser.>sideEffects("c").get(0);
traverser.>sideEffects("c").clear();
traverser.>sideEffects("c").add(temp + 1);
}).values("name");
}
@Override
public Traversal get_g_VX1X_out_sideEffectXX_name(final Object v1Id) {
return g.V(v1Id).out().sideEffect(traverser -> {
}).values("name");
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy