diff --git a/src/main/java/com/example/LoxInstance.java b/src/main/java/com/example/LoxInstance.java index 7f499db..011c700 100644 --- a/src/main/java/com/example/LoxInstance.java +++ b/src/main/java/com/example/LoxInstance.java @@ -17,7 +17,7 @@ public String toString() { } Object get(Token name) { - if (fields.containsValue(name.lexeme)) { + if (fields.containsKey(name.lexeme)) { return fields.get(name.lexeme); } diff --git a/src/test/java/com/example/LoxInstanceTest.java b/src/test/java/com/example/LoxInstanceTest.java new file mode 100644 index 0000000..103a42d --- /dev/null +++ b/src/test/java/com/example/LoxInstanceTest.java @@ -0,0 +1,24 @@ +package com.example; + +import java.util.HashMap; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class LoxInstanceTest extends TestCase { + public LoxInstanceTest(String testName) { + super(testName); + } + + public static Test suite() { + return new TestSuite(LoxInstanceTest.class); + } + + public void testFieldAccess() { + LoxClass klass = new LoxClass("Foo", null, new HashMap<>()); + LoxInstance instance = new LoxInstance(klass); + Token token = new Token(Token.TokenType.IDENTIFIER, "bar", null, 1); + instance.set(token, 42); + assertEquals(42, instance.get(token)); + } +}