81 lines
3.0 KiB
Java
81 lines
3.0 KiB
Java
package oop.ch05.generic.mensa;
|
|
|
|
import oop.ch05.generic.secured.AuthorizationException;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertThrows;
|
|
|
|
public class MensaTest {
|
|
private static final String CONF_ACCOUNT = "33-1298";
|
|
private static final String OTHER_ACCOUNT = "33-1299";
|
|
private AccountManagement accountMgt;
|
|
private VendingMachine vm1;
|
|
private VendingMachine vm2;
|
|
private VendingMachine tumVM;
|
|
private CashPoint unibwMensa;
|
|
|
|
private AccountCard conf;
|
|
private MensaCard frankSmith;
|
|
private CashCard hansMueller;
|
|
private CashCard peterSchmidt;
|
|
private CashCard thomasMayer;
|
|
|
|
@Before
|
|
public void setup() {
|
|
accountMgt = new AccountManagement(4711, "UniBw admin");
|
|
|
|
vm1 = new VendingMachine("left", 4711);
|
|
vm2 = new VendingMachine("right", 4711);
|
|
tumVM = new VendingMachine("TUM Mensa", 3141);
|
|
unibwMensa = new CashPoint("UniBw Mensa", 4711, accountMgt);
|
|
|
|
conf = new AccountCard("conference", CONF_ACCOUNT, 42);
|
|
frankSmith = new CountCard("Frank Smith", Color.gray);
|
|
hansMueller = new CashCard("Hans Müller", Color.green, 4711);
|
|
peterSchmidt = new CashCard("Peter Schmidt", Color.green, 4711);
|
|
thomasMayer = new CashCard("Thomas Mayer", Color.blue, 4711);
|
|
}
|
|
|
|
@Test
|
|
public void testPayment() throws AuthorizationException, RejectedException {
|
|
vm1.deposit(hansMueller, 10);
|
|
vm1.deposit(peterSchmidt, 5);
|
|
vm2.deposit(thomasMayer, 2);
|
|
assertThrows(AuthorizationException.class, () -> tumVM.deposit(hansMueller, 10));
|
|
|
|
assertEquals(15, vm1.getEuros());
|
|
assertEquals(2, vm2.getEuros());
|
|
assertEquals(0, tumVM.getEuros());
|
|
assertEquals(1000, hansMueller.getBalance());
|
|
assertEquals(500, peterSchmidt.getBalance());
|
|
assertEquals(200, thomasMayer.getBalance());
|
|
|
|
hansMueller.pass(unibwMensa);
|
|
assertEquals(733, hansMueller.getBalance());
|
|
assertEquals(1, unibwMensa.getCounter());
|
|
assertEquals(267, unibwMensa.getCents());
|
|
|
|
frankSmith.pass(unibwMensa);
|
|
assertEquals(0, accountMgt.getAmount(CONF_ACCOUNT));
|
|
assertThrows(RejectedException.class, () -> conf.pass(unibwMensa));
|
|
assertThrows(RejectedException.class, () -> thomasMayer.pass(unibwMensa));
|
|
hansMueller.pass(unibwMensa);
|
|
hansMueller.pass(unibwMensa);
|
|
assertEquals(199, hansMueller.getBalance());
|
|
|
|
assertThrows(RejectedException.class, () -> hansMueller.pass(unibwMensa));
|
|
|
|
accountMgt.deposit(CONF_ACCOUNT, 1000);
|
|
accountMgt.deposit(OTHER_ACCOUNT, 2000);
|
|
assertEquals(100000, accountMgt.getAmount(CONF_ACCOUNT));
|
|
assertEquals(200000, accountMgt.getAmount(OTHER_ACCOUNT));
|
|
|
|
conf.pass(unibwMensa);
|
|
assertEquals(99505, accountMgt.getAmount(CONF_ACCOUNT));
|
|
assertEquals(200000, accountMgt.getAmount(OTHER_ACCOUNT));
|
|
assertEquals(5, unibwMensa.getCounter());
|
|
}
|
|
}
|