From 2b40511362ba11b8a98fe437f12df8c0a134f7e9 Mon Sep 17 00:00:00 2001 From: Alisa Novik <40357628+Alisa-Novik@users.noreply.github.com> Date: Thu, 22 May 2025 21:42:50 -0400 Subject: [PATCH] Fix instance field access and add test --- src/main/java/com/example/LoxInstance.java | 2 +- .../java/com/example/LoxInstanceTest.java | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/example/LoxInstanceTest.java 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)); + } +}