39 lines
1.1 KiB
Java
39 lines
1.1 KiB
Java
package io.gitlab.jfronny.muscript.test;
|
|
|
|
import io.gitlab.jfronny.muscript.compiler.Parser;
|
|
import org.junit.jupiter.api.*;
|
|
|
|
import static io.gitlab.jfronny.muscript.test.util.MuTestUtil.*;
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
class ObjectTest {
|
|
@Test
|
|
void valueAccess() {
|
|
assertTrue(bool("boolean"));
|
|
assertTrue(bool("object.subvalue > 1000"));
|
|
assertTrue(bool("object.subfunc(2, 4, 8) == 12"));
|
|
}
|
|
|
|
@Test
|
|
void arrayAccess() {
|
|
assertTrue(bool("object[1] == 'One'"));
|
|
assertTrue(bool("object['subvalue'] == 1024"));
|
|
assertTrue(bool("object[object2.valuename] == 1024"));
|
|
assertTrue(bool("object2['sub'].val == 10"));
|
|
assertTrue(bool("object2.sub['val'] == 10"));
|
|
}
|
|
|
|
@Test
|
|
void objectLiteral() {
|
|
assertEquals(12, Parser.parseScript("""
|
|
ob = {}
|
|
ob = {test = 2, test2 = 3}
|
|
t = ob.test
|
|
ob = {test2 = 3, test = 2}
|
|
t = t * ob.test
|
|
ob = {test = 3}
|
|
t * ob.test
|
|
""").run(makeArgs()).asNumber().getValue());
|
|
}
|
|
}
|