Skip to content

Commit 9956e2e

Browse files
committed
tests: immutability
1 parent 1b663dc commit 9956e2e

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

src/test/java/UserMapConcurrencyTest.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import org.junit.Test;
22

3+
import java.util.Map;
34
import java.util.concurrent.locks.ReadWriteLock;
45
import java.util.concurrent.locks.ReentrantReadWriteLock;
5-
import java.util.function.Function;
6-
import java.util.stream.Collectors;
7-
import java.util.stream.Stream;
86

97
import static org.hamcrest.CoreMatchers.is;
108
import static org.hamcrest.MatcherAssert.assertThat;
@@ -14,33 +12,34 @@
1412
*/
1513
public class UserMapConcurrencyTest {
1614

17-
@Test
18-
public void transfer() {
19-
var userMap = Stream.of(new User(1, 40), new User(2, 33))
20-
.collect(Collectors.toMap(User::getId, Function.identity()));
15+
private Map<Integer, User> userMap = Map.of(1, new User(1, 40),
16+
2, new User(2, 33));
2117

18+
@Test
19+
public void write_transfer() {
2220
ReadWriteLock lock = new ReentrantReadWriteLock();
2321
LockExecutor executor = new LockExecutor(lock);
2422

25-
executor.write(() -> {
23+
var transferred = executor.write(() -> {
2624
var transfer = PositiveInt.of(15);
27-
userMap.replace(1, userMap.get(1).outcome(transfer));
28-
userMap.replace(2, userMap.get(2).income(transfer));
25+
return Map.of(1, userMap.get(1).outcome(transfer),
26+
2, userMap.get(2).income(transfer));
2927
});
3028

31-
assertThat(userMap.get(1).getBalance(), is(25));
32-
assertThat(userMap.get(2).getBalance(), is(48));
29+
assertThat(transferred.get(1).getBalance(), is(25));
30+
assertThat(transferred.get(2).getBalance(), is(48));
3331
}
3432

3533
@Test
36-
public void read() {
37-
var userMap = Stream.of(new User(1, 40), new User(2, 33))
38-
.collect(Collectors.toMap(User::getId, Function.identity()));
39-
34+
public void read_sum_balance() {
4035
ReadWriteLock lock = new ReentrantReadWriteLock();
4136
LockExecutor executor = new LockExecutor(lock);
4237

43-
var balanceAll = executor.read(() -> userMap.values().stream().map(User::getBalance).mapToInt(x -> x).sum());
38+
var balanceAll = executor.read(() -> userMap.values()
39+
.stream()
40+
.map(User::getBalance)
41+
.mapToInt(x -> x)
42+
.sum());
4443

4544
assertThat(balanceAll, is(73));
4645
}

0 commit comments

Comments
 (0)