package de.bht.fpa.statepattern; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import org.junit.Before; import org.junit.Test; public class CoffeeMachineTest { private de.bht.fpa.statepattern.v1.CoffeeMachine machine = null; // de.bht.fpa.statepattern.v2.CoffeeMachine machine = null; // de.bht.fpa.statepattern.v3.CoffeeMachine machine = null; // de.bht.fpa.statepattern.v5.CoffeeMachine machine = null; @Before public void setUp() throws Exception { machine = new de.bht.fpa.statepattern.v1.CoffeeMachine(); // machine = new de.bht.fpa.statepattern.v2.CoffeeMachine(); // machine = new de.bht.fpa.statepattern.v3.CoffeeMachine(); // machine = new de.bht.fpa.statepattern.v5.CoffeeMachine(); } @Test public void testGoodCase() { assertThat(insertChip(), is("Sie haben einen Chip eingelegt. Wählen Sie ein Getränk.")); assertThat(selectBeverage(), is("Sie haben ein Getränk ausgewählt.Ihr Getränk wird vorbereitet.")); } @Test public void testEjectChip() { assertThat(insertChip(), is("Sie haben einen Chip eingelegt. Wählen Sie ein Getränk.")); assertThat(ecjectChip(), is("Ihr eingelegter Chip wird ausgeworfen.")); } @Test public void testBadCases() { assertThat(ecjectChip(), is("Sie haben keinen Chip eingelegt den wir Ihnen auswerfen können.")); assertThat(selectBeverage(), is("Sie haben ein Getränk ausgewählt, aber kein Chip eingeworfen.")); } @Test public void testSeveralChipInsertions() { assertThat(insertChip(), is("Sie haben einen Chip eingelegt. Wählen Sie ein Getränk.")); assertThat(insertChip(), is("Sie haben bereits einen Chip eingelegt.")); assertThat(insertChip(), is("Sie haben bereits einen Chip eingelegt.")); } private String ecjectChip() { String ecjectChip = machine.ecjectChip(); System.out.println(ecjectChip); return ecjectChip; } private String selectBeverage() { String selectBeverage = machine.selectBeverage(); System.out.println(selectBeverage); return selectBeverage; } private String insertChip() { String insertChip = machine.insertChip(); System.out.println(insertChip); return insertChip; } }