1
+ import org.assertj.core.api.Assertions.assertThat
2
+ import org.junit.jupiter.api.Test
3
+
1
4
data class Memento (val state : String )
2
5
3
6
class Originator (var state : String ) {
@@ -23,25 +26,28 @@ class CareTaker {
23
26
}
24
27
}
25
28
26
- fun main (args : Array <String >) {
27
- val originator = Originator (" initial state" )
28
- val careTaker = CareTaker ()
29
- careTaker.saveState(originator.createMemento())
29
+ class MementoTest {
30
+
31
+ @Test
32
+ fun `Memento` () {
33
+ val originator = Originator (" initial state" )
34
+ val careTaker = CareTaker ()
35
+ careTaker.saveState(originator.createMemento())
30
36
31
- originator.state = " State #1"
32
- originator.state = " State #2"
33
- careTaker.saveState(originator.createMemento())
37
+ originator.state = " State #1"
38
+ originator.state = " State #2"
39
+ careTaker.saveState(originator.createMemento())
34
40
35
- originator.state = " State #3"
36
- careTaker.saveState(originator.createMemento())
41
+ originator.state = " State #3"
42
+ println (" Current State: " + originator.state)
43
+ assertThat(originator.state).isEqualTo(" State #3" )
37
44
38
- originator.state = " State #4"
39
- println (" Current State: " + originator.state)
45
+ originator.restore(careTaker.restore(1 ))
46
+ println (" Second saved state: " + originator.state)
47
+ assertThat(originator.state).isEqualTo(" State #2" )
40
48
41
- originator.restore(careTaker.restore(0 ))
42
- println (" First saved State: " + originator.state)
43
- originator.restore(careTaker.restore(1 ))
44
- println (" Second saved State: " + originator.state)
45
- originator.restore(careTaker.restore(2 ))
46
- println (" Second saved State: " + originator.state)
49
+ originator.restore(careTaker.restore(0 ))
50
+ println (" First saved state: " + originator.state)
51
+ assertThat(originator.state).isEqualTo(" initial state" )
52
+ }
47
53
}
0 commit comments