/** @since 0.13 */ @Test public void testPropertiesInteropMessage() throws Exception { PolyglotEngine.Value values = findGlobalSymbol(valuesObject()); Value valueObj = values.execute(); assertIsObjectOfLanguage(valueObj.get()); Map<?, ?> res = valueObj.as(Map.class); Map<String, Object> expected = new HashMap<>(); expected.put("intValue", 0); expected.put("byteValue", 0); expected.put("doubleValue", 0.0); for (Map.Entry<? extends Object, ? extends Object> entry : res.entrySet()) { Object key = entry.getKey(); Object value = entry.getValue(); Object expValue = expected.remove(key); if (expValue != null) { assertEquals("For key " + key, ((Number) expValue).doubleValue(), ((Number) value).doubleValue(), 0.01); } } assertTrue("All expected properties found: " + expected, expected.isEmpty()); }
/** @since 0.8 or earlier */ @Test public void readWriteCharValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertEquals("Zero", '0', values.charValue()); String letters = "P\u0159\u00EDli\u0161 \u017Elu\u0165ou\u010Dk\u00FD k\u016F\u0148 \u00FAp\u011Bl \u010F\u00E1belsk\u00E9 \u00F3dy"; final char value = letters.charAt(RANDOM.nextInt(letters.length())); values.charValue(value); assertEquals("Correct value", value, values.charValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteFloatValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertDouble("Zero", 0, values.floatValue()); final float value = RANDOM.nextFloat() * 1000.0f; values.floatValue(value); assertDouble("Correct value", value, values.floatValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteByteValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertEquals("Zero", 0, values.byteValue()); final byte value = (byte) RANDOM.nextInt(128); values.byteValue(value); assertEquals("Correct value", value, values.byteValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteIntValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertEquals("Zero", 0, values.intValue()); final int value = RANDOM.nextInt(); values.intValue(value); assertEquals("Correct value", value, values.intValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteDoubleValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertDouble("Zero", 0, values.doubleValue()); final double value = RANDOM.nextDouble() * 1000.0; values.doubleValue(value); assertDouble("Correct value", value, values.doubleValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteShortValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertEquals("Zero", 0, values.shortValue()); final short value = (short) RANDOM.nextInt(32768); values.shortValue(value); assertEquals("Correct value", value, values.shortValue()); }
/** @since 0.8 or earlier */ @Test public void readWriteBooleanValue() throws Exception { String id = valuesObject(); ValuesObject values = findGlobalSymbol(id).execute().as(ValuesObject.class); assertEquals("False", false, values.booleanValue()); values.booleanValue(true); assertEquals("Correct value", true, values.booleanValue()); values.booleanValue(false); assertEquals("Correct value2", false, values.booleanValue()); }