BAEL-3477: Add usage example for the mutable key (#8987)
This commit is contained in:
parent
2d5782d432
commit
2fb2f89bd4
@ -3,6 +3,8 @@ package com.baeldung.map;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
@ -121,4 +123,52 @@ class ProductUnitTest {
|
|||||||
assertNull(productsByName.get("E-Bike"));
|
assertNull(productsByName.get("E-Bike"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenMutableKeyWhenKeyChangeThenValueNotFound() {
|
||||||
|
// Given
|
||||||
|
MutableKey key = new MutableKey("initial");
|
||||||
|
|
||||||
|
Map<MutableKey, String> items = new HashMap<>();
|
||||||
|
items.put(key, "success");
|
||||||
|
|
||||||
|
// When
|
||||||
|
key.setName("changed");
|
||||||
|
|
||||||
|
// Then
|
||||||
|
assertNull(items.get(key));
|
||||||
|
}
|
||||||
|
|
||||||
|
static class MutableKey {
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public MutableKey(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (o == null || getClass() != o.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
MutableKey that = (MutableKey) o;
|
||||||
|
return Objects.equals(name, that.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user