package eu.stratosphere.sopremo.expressions;
import static eu.stratosphere.sopremo.type.JsonUtil.createArrayNode;
import static eu.stratosphere.sopremo.type.JsonUtil.createObjectNode;
import junit.framework.Assert;
import org.junit.Test;
import eu.stratosphere.sopremo.type.IJsonNode;
public class LazyArrayProjectionTest extends EvaluableExpressionTest<ArrayProjection> {
@Override
protected ArrayProjection createDefaultInstance(final int index) {
return new ArrayProjection(new ObjectAccess(String.valueOf(index)));
}
@Test
public void shouldAccessFieldOfArray() {
final IJsonNode result = new ArrayProjection(new ObjectAccess("fieldName")).evaluate(
createArrayNode(createObjectNode("fieldName", 1), createObjectNode("fieldName", 2),
createObjectNode("fieldName", 3)),
null, this.context);
Assert.assertEquals(createArrayNode(1, 2, 3), result);
}
@Test
public void shouldAccessFieldOfStreamArray() {
final IJsonNode result = new ArrayProjection(new ObjectAccess("fieldName")).evaluate(
createArrayNode(createObjectNode("fieldName", 1), createObjectNode("fieldName", 2),
createObjectNode("fieldName", 3)),
null, this.context);
Assert.assertEquals(createArrayNode(1, 2, 3), result);
}
}