Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,89 @@ public void testCopyConstructorWithModifications() {
assertEquals(150, original.getValue());
assertEquals(300, copy.getValue());
}

/** Test getModifications method. */
@Test
public void testGetModifications() {
ModifiableInteger integer = new ModifiableInteger();
integer.setOriginalValue(100);

// Initially no modifications
assertNull(integer.getModifications());

// Add modifications
IntegerAddModification addMod = new IntegerAddModification(50);
IntegerMultiplyModification multiplyMod = new IntegerMultiplyModification(2);
integer.addModification(addMod);
integer.addModification(multiplyMod);

// Get modifications
List<VariableModification<Integer>> mods = integer.getModifications();
assertNotNull(mods);
assertEquals(2, mods.size());
assertEquals(addMod, mods.get(0));
assertEquals(multiplyMod, mods.get(1));

// Clear modifications
integer.clearModifications();
assertNull(integer.getModifications());
}

/** Test containsAssertion method. */
@Test
public void testContainsAssertion() {
ModifiableInteger integer = new ModifiableInteger();

// Initially no assertion
assertFalse(integer.containsAssertion());

// Set assertEquals value
integer.setAssertEquals(150);
assertTrue(integer.containsAssertion());

// Create new instance without assertion
ModifiableInteger noAssertion = new ModifiableInteger();
assertFalse(noAssertion.containsAssertion());
}

/** Test innerToString method through subclass toString. */
@Test
public void testInnerToString() {
// Test with no modifications or assertions
ModifiableInteger integer1 = new ModifiableInteger();
integer1.setOriginalValue(100);
String str1 = integer1.toString();
assertTrue(str1.contains("originalValue=100"));
assertFalse(str1.contains("modifications="));
assertFalse(str1.contains("assertEquals="));

// Test with modifications
ModifiableInteger integer2 = new ModifiableInteger();
integer2.setOriginalValue(100);
integer2.addModification(new IntegerAddModification(50));
integer2.addModification(new IntegerMultiplyModification(2));
String str2 = integer2.toString();
assertTrue(str2.contains("originalValue=100"));
assertTrue(str2.contains("modifications=["));
assertTrue(str2.contains("IntegerAddModification"));
assertTrue(str2.contains("IntegerMultiplyModification"));

// Test with assertions
ModifiableInteger integer3 = new ModifiableInteger();
integer3.setOriginalValue(100);
integer3.setAssertEquals(150);
String str3 = integer3.toString();
assertTrue(str3.contains("originalValue=100"));
assertTrue(str3.contains("assertEquals=150"));

// Test with both modifications and assertions
ModifiableInteger integer4 = new ModifiableInteger();
integer4.setOriginalValue(100);
integer4.addModification(new IntegerAddModification(50));
integer4.setAssertEquals(150);
String str4 = integer4.toString();
assertTrue(str4.contains("originalValue=100"));
assertTrue(str4.contains("modifications=["));
assertTrue(str4.contains("assertEquals=150"));
}
}