@Test
public void testReceivingTimeViaObject() throws Exception {
ObjectMethods object = new ObjectMethods();
engine.put("object", object);
engine.eval("object.value = Time.new");
assertThat(object.value.getClass(), is(equalTo((Class) Date.class)));
}
@Test
public void testReturningTimeViaObject_JodaDateTime() throws Exception {
ObjectMethods object = new ObjectMethods();
object.value = DateTime.now();
engine.put("object", object);
assertThat((String) engine.eval("object.value.class.name"),
is(equalTo("Time")));
assertThat((Boolean) engine.eval("object.value.is_a?(Time)"), is(true));
}
@Test
public void testReturningTimeViaObject_JavaUtilDate() throws Exception {
ObjectMethods object = new ObjectMethods();
object.value = new Date();
engine.put("object", object);
assertThat((String) engine.eval("object.value.class.name"),
is(equalTo("Time")));
assertThat((Boolean) engine.eval("object.value.is_a?(Time)"), is(true));
}
@Before
public void setUp() throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
engine = manager.getEngineByExtension("rb");
}
public static class ObjectMethods {
private Object value;
public void setValue(Object value) {
this.value = value;
}
public Object getValue() {
return value;
}
}