Added tests for memento pattern
This commit is contained in:
75
memento/src/test/java/com/iluwatar/memento/StarTest.java
Normal file
75
memento/src/test/java/com/iluwatar/memento/StarTest.java
Normal file
@ -0,0 +1,75 @@
|
||||
package com.iluwatar.memento;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
/**
|
||||
* Date: 12/20/15 - 10:08 AM
|
||||
*
|
||||
* @author Jeroen Meulemeester
|
||||
*/
|
||||
public class StarTest {
|
||||
|
||||
/**
|
||||
* Verify the stages of a dying sun, without going back in time
|
||||
*/
|
||||
@Test
|
||||
public void testTimePasses() {
|
||||
final Star star = new Star(StarType.SUN, 1, 2);
|
||||
assertEquals("sun age: 1 years mass: 2 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("red giant age: 2 years mass: 16 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("white dwarf age: 4 years mass: 128 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("supernova age: 8 years mass: 1024 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("dead star age: 16 years mass: 8192 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("dead star age: 64 years mass: 0 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("dead star age: 256 years mass: 0 tons", star.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify some stage of a dying sun, but go back in time to test the memento
|
||||
*/
|
||||
@Test
|
||||
public void testSetMemento() {
|
||||
final Star star = new Star(StarType.SUN, 1, 2);
|
||||
final StarMemento firstMemento = star.getMemento();
|
||||
assertEquals("sun age: 1 years mass: 2 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
final StarMemento secondMemento = star.getMemento();
|
||||
assertEquals("red giant age: 2 years mass: 16 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
final StarMemento thirdMemento = star.getMemento();
|
||||
assertEquals("white dwarf age: 4 years mass: 128 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("supernova age: 8 years mass: 1024 tons", star.toString());
|
||||
|
||||
star.setMemento(thirdMemento);
|
||||
assertEquals("white dwarf age: 4 years mass: 128 tons", star.toString());
|
||||
|
||||
star.timePasses();
|
||||
assertEquals("supernova age: 8 years mass: 1024 tons", star.toString());
|
||||
|
||||
star.setMemento(secondMemento);
|
||||
assertEquals("red giant age: 2 years mass: 16 tons", star.toString());
|
||||
|
||||
star.setMemento(firstMemento);
|
||||
assertEquals("sun age: 1 years mass: 2 tons", star.toString());
|
||||
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user