package com.spotify.heroic.grammar;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.stream.Stream;
import static org.junit.Assert.assertEquals;
@RunWith(MockitoJUnitRunner.class)
public class RangeExpressionTest extends AbstractExpressionTest<RangeExpression> {
@Override
protected RangeExpression build(final Context ctx) {
return new RangeExpression(ctx, a, b);
}
@Override
protected BiFunction<Expression.Visitor<Void>, RangeExpression, Void> visitorMethod() {
return Expression.Visitor::visitRange;
}
@Override
protected Stream<Consumer<RangeExpression>> accessors() {
return Stream.of(accessorTest(a, RangeExpression::getStart),
accessorTest(b, RangeExpression::getEnd));
}
@Test
public void testAccessors() {
final RangeExpression e = build();
assertEquals(a, e.getStart());
assertEquals(b, e.getEnd());
}
@Test
public void toReprTest() {
final RangeExpression e = build();
assertEquals("a -> b", e.toRepr());
}
}