package jetbrick.template.exec.invoker;
import jetbrick.template.Errors;
import jetbrick.template.exec.AbstractJetxTest;
import jetbrick.template.runtime.InterpretException;
import org.junit.Assert;
import org.junit.Test;
public class VoidTest extends AbstractJetxTest {
@Test
public void testValue() {
Assert.assertEquals("", eval("${Thread::yield()}"));
Assert.assertEquals("", eval("${new StringBuilder().trimToSize()}"));
Assert.assertEquals("", eval("$!{Thread::yield()}"));
}
@Test
public void testArgumentIsVoid() {
thrown.expect(InterpretException.class);
thrown.expectMessage(Errors.EXPRESSION_ARGUMENT_IS_VOID);
eval("${System::identityHashCode(Thread::yield())}");
}
@Test
public void testMethodInvoke() {
thrown.expect(InterpretException.class);
thrown.expectMessage(Errors.EXPRESSION_OBJECT_IS_VOID);
eval("${Thread::yield().toString()}");
}
@Test
public void testListGet1() {
thrown.expect(InterpretException.class);
thrown.expectMessage(Errors.EXPRESSION_OBJECT_IS_VOID);
eval("${Thread::yield()[0]}");
}
@Test
public void testListGet2() {
thrown.expect(InterpretException.class);
thrown.expectMessage(Errors.EXPRESSION_OBJECT_IS_VOID);
eval("${new StringBuilder().trimToSize()[0]}");
}
@Test
public void testListGet3() {
thrown.expect(InterpretException.class);
thrown.expectMessage(Errors.EXPRESSION_INDEX_IS_VOID);
eval("${[1,2,3][Thread::yield()]}");
}
}