diff --git a/bin/ATM.class b/bin/ATM.class deleted file mode 100644 index 76543bf..0000000 Binary files a/bin/ATM.class and /dev/null differ diff --git a/bin/ATMCaseStudy.class b/bin/ATMCaseStudy.class deleted file mode 100644 index 607c10d..0000000 Binary files a/bin/ATMCaseStudy.class and /dev/null differ diff --git a/bin/Account.class b/bin/Account.class deleted file mode 100644 index 5d2d636..0000000 Binary files a/bin/Account.class and /dev/null differ diff --git a/bin/BalanceInquiry.class b/bin/BalanceInquiry.class deleted file mode 100644 index 48f8e6a..0000000 Binary files a/bin/BalanceInquiry.class and /dev/null differ diff --git a/bin/BankDatabase.class b/bin/BankDatabase.class deleted file mode 100644 index 429aec1..0000000 Binary files a/bin/BankDatabase.class and /dev/null differ diff --git a/bin/Business_logic/ATMCaseStudy.class b/bin/Business_logic/ATMCaseStudy.class new file mode 100644 index 0000000..e247092 Binary files /dev/null and b/bin/Business_logic/ATMCaseStudy.class differ diff --git a/bin/Business_logic/DepositSlot.class b/bin/Business_logic/DepositSlot.class new file mode 100644 index 0000000..9e9e43e Binary files /dev/null and b/bin/Business_logic/DepositSlot.class differ diff --git a/bin/Business_logic/Euro.class b/bin/Business_logic/Euro.class new file mode 100644 index 0000000..2157b58 Binary files /dev/null and b/bin/Business_logic/Euro.class differ diff --git a/bin/Business_logic/Transaction.class b/bin/Business_logic/Transaction.class new file mode 100644 index 0000000..6981be8 Binary files /dev/null and b/bin/Business_logic/Transaction.class differ diff --git a/bin/CashDispenser.class b/bin/CashDispenser.class deleted file mode 100644 index b8cedba..0000000 Binary files a/bin/CashDispenser.class and /dev/null differ diff --git a/bin/Database/BalanceInquiry.class b/bin/Database/BalanceInquiry.class new file mode 100644 index 0000000..dd47f20 Binary files /dev/null and b/bin/Database/BalanceInquiry.class differ diff --git a/bin/Database/BankDatabase.class b/bin/Database/BankDatabase.class new file mode 100644 index 0000000..2594b4a Binary files /dev/null and b/bin/Database/BankDatabase.class differ diff --git a/bin/Deposit.class b/bin/Deposit.class deleted file mode 100644 index 57b0c3f..0000000 Binary files a/bin/Deposit.class and /dev/null differ diff --git a/bin/DepositSlot.class b/bin/DepositSlot.class deleted file mode 100644 index a2664ad..0000000 Binary files a/bin/DepositSlot.class and /dev/null differ diff --git a/bin/GUI/ATM.class b/bin/GUI/ATM.class new file mode 100644 index 0000000..7d02985 Binary files /dev/null and b/bin/GUI/ATM.class differ diff --git a/bin/GUI/Account.class b/bin/GUI/Account.class new file mode 100644 index 0000000..6307477 Binary files /dev/null and b/bin/GUI/Account.class differ diff --git a/bin/GUI/CashDispenser.class b/bin/GUI/CashDispenser.class new file mode 100644 index 0000000..d8356da Binary files /dev/null and b/bin/GUI/CashDispenser.class differ diff --git a/bin/GUI/Deposit.class b/bin/GUI/Deposit.class new file mode 100644 index 0000000..65be06a Binary files /dev/null and b/bin/GUI/Deposit.class differ diff --git a/bin/GUI/Keypad.class b/bin/GUI/Keypad.class new file mode 100644 index 0000000..317d410 Binary files /dev/null and b/bin/GUI/Keypad.class differ diff --git a/bin/GUI/Screen.class b/bin/GUI/Screen.class new file mode 100644 index 0000000..a8f5842 Binary files /dev/null and b/bin/GUI/Screen.class differ diff --git a/bin/GUI/Withdrawal.class b/bin/GUI/Withdrawal.class new file mode 100644 index 0000000..15165a8 Binary files /dev/null and b/bin/GUI/Withdrawal.class differ diff --git a/bin/Keypad.class b/bin/Keypad.class deleted file mode 100644 index 9b066e2..0000000 Binary files a/bin/Keypad.class and /dev/null differ diff --git a/bin/Screen.class b/bin/Screen.class deleted file mode 100644 index a036758..0000000 Binary files a/bin/Screen.class and /dev/null differ diff --git a/bin/Transaction.class b/bin/Transaction.class deleted file mode 100644 index 1330b55..0000000 Binary files a/bin/Transaction.class and /dev/null differ diff --git a/bin/Withdrawal.class b/bin/Withdrawal.class deleted file mode 100644 index 291d645..0000000 Binary files a/bin/Withdrawal.class and /dev/null differ diff --git a/bin/test/AccountTest.class b/bin/test/AccountTest.class new file mode 100644 index 0000000..b2c069c Binary files /dev/null and b/bin/test/AccountTest.class differ diff --git a/bin/test/BankDatabaseTest.class b/bin/test/BankDatabaseTest.class new file mode 100644 index 0000000..9ef090b Binary files /dev/null and b/bin/test/BankDatabaseTest.class differ diff --git a/bin/test/TestEuro.class b/bin/test/TestEuro.class new file mode 100644 index 0000000..5e5ff40 Binary files /dev/null and b/bin/test/TestEuro.class differ diff --git a/componenti.txt b/componenti.txt new file mode 100644 index 0000000..a3565e4 --- /dev/null +++ b/componenti.txt @@ -0,0 +1,3 @@ +Mazzolari Daniel Carlo 5200670 +Ghio Francesco 5212572 +Strata Elena 5199471 \ No newline at end of file diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000..9d5fe16 Binary files /dev/null and b/lib/hamcrest-core-1.3.jar differ diff --git a/lib/junit-4.13.2.jar b/lib/junit-4.13.2.jar new file mode 100644 index 0000000..6da55d8 Binary files /dev/null and b/lib/junit-4.13.2.jar differ diff --git a/src/ATMCaseStudy.java b/src/Business_logic/ATMCaseStudy.java similarity index 97% rename from src/ATMCaseStudy.java rename to src/Business_logic/ATMCaseStudy.java index b9033bd..15b839f 100644 --- a/src/ATMCaseStudy.java +++ b/src/Business_logic/ATMCaseStudy.java @@ -1,6 +1,9 @@ +package Business_logic; // ATMCaseStudy.java // Driver program for the ATM case study +import GUI.ATM; + public class ATMCaseStudy { // main method creates and runs the ATM diff --git a/src/DepositSlot.java b/src/Business_logic/DepositSlot.java similarity index 98% rename from src/DepositSlot.java rename to src/Business_logic/DepositSlot.java index 64e02c2..f2c8e18 100644 --- a/src/DepositSlot.java +++ b/src/Business_logic/DepositSlot.java @@ -1,3 +1,4 @@ +package Business_logic; // DepositSlot.java // Represents the deposit slot of the ATM diff --git a/src/Business_logic/Euro.java b/src/Business_logic/Euro.java new file mode 100644 index 0000000..b35a428 --- /dev/null +++ b/src/Business_logic/Euro.java @@ -0,0 +1,48 @@ +package Business_logic; +public class Euro { + + + private long valore; + + public Euro(long euro, long cent) { + if (euro >= 0) { + valore = euro*100 + cent; + } else { + valore = euro*100 - cent; + } + } + + public Euro(double d) { + valore = (long)(d*100); + } + + public long getValore() { + return valore; + } + + public Euro somma(Euro e) { + this.valore = this.valore + e.getValore(); + return this; + } + + public Euro sottrai(Euro e) { + this.valore = this.valore - e.getValore(); + return this; + } + + public boolean ugualeA(Euro e){ + if (valore == e.getValore()) + return true; + else return false; + } + + public boolean minoreDi(Euro e){ + if (valore <= e.getValore()) + return true; + else return false; + } + + public String stampa(){ + return (double)valore/100 +" euro"; + } +} \ No newline at end of file diff --git a/src/Transaction.java b/src/Business_logic/Transaction.java similarity index 96% rename from src/Transaction.java rename to src/Business_logic/Transaction.java index 508fea8..89d21b5 100644 --- a/src/Transaction.java +++ b/src/Business_logic/Transaction.java @@ -1,6 +1,10 @@ +package Business_logic; // Transaction.java // Abstract superclass Transaction represents an ATM transaction +import Database.BankDatabase; +import GUI.Screen; + public abstract class Transaction { private int accountNumber; // indicates account involved diff --git a/src/BalanceInquiry.java b/src/Database/BalanceInquiry.java similarity index 97% rename from src/BalanceInquiry.java rename to src/Database/BalanceInquiry.java index d45fa6a..9a150e0 100644 --- a/src/BalanceInquiry.java +++ b/src/Database/BalanceInquiry.java @@ -1,6 +1,10 @@ +package Database; // BalanceInquiry.java // Represents a balance inquiry ATM transaction +import Business_logic.Transaction; +import GUI.Screen; + public class BalanceInquiry extends Transaction { // BalanceInquiry constructor diff --git a/src/BankDatabase.java b/src/Database/BankDatabase.java similarity index 98% rename from src/BankDatabase.java rename to src/Database/BankDatabase.java index 3978497..5cc3796 100644 --- a/src/BankDatabase.java +++ b/src/Database/BankDatabase.java @@ -1,6 +1,9 @@ +package Database; // BankDatabase.java // Represents the bank account information database +import GUI.Account; + public class BankDatabase { private Account accounts[]; // array of Accounts diff --git a/src/ATM.java b/src/GUI/ATM.java similarity index 97% rename from src/ATM.java rename to src/GUI/ATM.java index aa3d187..1501452 100644 --- a/src/ATM.java +++ b/src/GUI/ATM.java @@ -1,6 +1,12 @@ +package GUI; // ATM.java // Represents an automated teller machine +import Business_logic.DepositSlot; +import Business_logic.Transaction; +import Database.BalanceInquiry; +import Database.BankDatabase; + public class ATM { private boolean userAuthenticated; // whether user is authenticated diff --git a/src/Account.java b/src/GUI/Account.java similarity index 99% rename from src/Account.java rename to src/GUI/Account.java index c308eca..43348de 100644 --- a/src/Account.java +++ b/src/GUI/Account.java @@ -1,3 +1,5 @@ +package GUI; + // Account.java // Represents a bank account diff --git a/src/CashDispenser.java b/src/GUI/CashDispenser.java similarity index 99% rename from src/CashDispenser.java rename to src/GUI/CashDispenser.java index b249faf..0687b40 100644 --- a/src/CashDispenser.java +++ b/src/GUI/CashDispenser.java @@ -1,3 +1,4 @@ +package GUI; // CashDispenser.java // Represents the cash dispenser of the ATM diff --git a/src/Deposit.java b/src/GUI/Deposit.java similarity index 97% rename from src/Deposit.java rename to src/GUI/Deposit.java index 916ef70..6fd3785 100644 --- a/src/Deposit.java +++ b/src/GUI/Deposit.java @@ -1,6 +1,11 @@ +package GUI; // Deposit.java // Represents a deposit ATM transaction +import Business_logic.DepositSlot; +import Business_logic.Transaction; +import Database.BankDatabase; + public class Deposit extends Transaction { private double amount; // amount to deposit diff --git a/src/Keypad.java b/src/GUI/Keypad.java similarity index 99% rename from src/Keypad.java rename to src/GUI/Keypad.java index cd035c7..6833a46 100644 --- a/src/Keypad.java +++ b/src/GUI/Keypad.java @@ -1,3 +1,4 @@ +package GUI; // Keypad.java // Represents the keypad of the ATM import java.util.Scanner; // program uses Scanner to obtain user input diff --git a/src/Screen.java b/src/GUI/Screen.java similarity index 99% rename from src/Screen.java rename to src/GUI/Screen.java index 44d3f30..fd08c11 100644 --- a/src/Screen.java +++ b/src/GUI/Screen.java @@ -1,3 +1,4 @@ +package GUI; // Screen.java // Represents the screen of the ATM diff --git a/src/Withdrawal.java b/src/GUI/Withdrawal.java similarity index 98% rename from src/Withdrawal.java rename to src/GUI/Withdrawal.java index 6e0af62..a0bc2fb 100644 --- a/src/Withdrawal.java +++ b/src/GUI/Withdrawal.java @@ -1,6 +1,10 @@ +package GUI; // Withdrawal.java // Represents a withdrawal ATM transaction +import Business_logic.Transaction; +import Database.BankDatabase; + public class Withdrawal extends Transaction { private int amount; // amount to withdraw diff --git a/src/test/AccountTest.java b/src/test/AccountTest.java new file mode 100644 index 0000000..5695bda --- /dev/null +++ b/src/test/AccountTest.java @@ -0,0 +1,51 @@ +package test; +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; + +import GUI.Account; + +public class AccountTest { + private Account account; + + @Before + public void setUp() { + // Create a new Account object for each test + account = new Account(123456, 1234, 1000.0, 1000.0); + } + + @Test + public void testValidatePIN() { + assertTrue(account.validatePIN(1234)); + assertFalse(account.validatePIN(4321)); + } + + @Test + public void testGetAvailableBalance() { + assertEquals(1000, account.getAvailableBalance(), 0); + } + + @Test + public void testGetTotalBalance() { + assertEquals(1000.0, account.getTotalBalance(), 0); + } + + @Test + public void testCredit() { + account.credit(500.0); + assertEquals(1500.0, account.getTotalBalance(), 0); + } + + @Test + public void testDebit() { + account.debit(500.0); + assertEquals(500.0, account.getTotalBalance(), 0); + } + + @Test + public void testGetAccountNumber() { + assertEquals(123456, account.getAccountNumber()); + } +} + diff --git a/src/test/BankDatabaseTest.java b/src/test/BankDatabaseTest.java new file mode 100644 index 0000000..57ecca2 --- /dev/null +++ b/src/test/BankDatabaseTest.java @@ -0,0 +1,51 @@ +package test; + +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; + +import Database.BankDatabase; + +public class BankDatabaseTest { + private BankDatabase bankDatabase; + + @Before + public void setUp() { + bankDatabase = new BankDatabase(); +} + + @Test + public void testAuthenticateUser() { + assertTrue(bankDatabase.authenticateUser(12345, 54321)); + assertTrue(bankDatabase.authenticateUser(98765, 56789)); + assertFalse(bankDatabase.authenticateUser(87654321, 1234)); + } + + @Test + public void testGetAvailableBalance() { + assertEquals(1000.0, bankDatabase.getAvailableBalance(12345), 0.0); + assertEquals(200.0, bankDatabase.getAvailableBalance(98765), 0.0); + } + + @Test + public void testGetTotalBalance() { + assertEquals(1200.0, bankDatabase.getTotalBalance(12345), 0.0); + assertEquals(200.0, bankDatabase.getTotalBalance(98765), 0.0);; + } + + @Test + public void testCredit() { + bankDatabase.credit(12345, 500.0); + assertEquals(1000.0, bankDatabase.getAvailableBalance(12345), 0.0); + assertEquals(1700.0, bankDatabase.getTotalBalance(12345), 0.0); + } + + @Test + public void testDebit() { + bankDatabase.debit(98765, 200.0); + assertEquals(0.0, bankDatabase.getAvailableBalance(98765), 0.0); + assertEquals(0.0, bankDatabase.getTotalBalance(98765), 0.0); + } + +} diff --git a/src/test/TestEuro.java b/src/test/TestEuro.java new file mode 100644 index 0000000..2a67801 --- /dev/null +++ b/src/test/TestEuro.java @@ -0,0 +1,64 @@ +package test; +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; + +import Business_logic.Euro; + + + +public class TestEuro { + + private Euro euro1; + private Euro euro2; + private Euro euro3; + + @Before + public void setUp() { + euro1 = new Euro(10, 50); + euro2 = new Euro(-5, 75); + euro3 = new Euro(12.75); + } + + @Test + public void testConstructor() { + assertEquals(1050, euro1.getValore()); + assertEquals(-575, euro2.getValore()); + assertEquals(1275, euro3.getValore()); + } + + @Test + public void testGetValore() { + assertEquals(1050, euro1.getValore()); + } + + @Test + public void testSomma() { + euro1.somma(new Euro(5, 75)); + assertEquals(1625, euro1.getValore()); + } + + @Test + public void testSottrai() { + euro1.sottrai(new Euro(5, 75)); + assertEquals(475, euro1.getValore()); + } + + @Test + public void testUgualeA() { + assertTrue(euro1.ugualeA(new Euro(10, 50))); + assertFalse(euro1.ugualeA(new Euro(5, 75))); + } + + @Test + public void testMinoreDi() { + assertFalse(euro1.minoreDi(new Euro(5, 75))); + assertTrue(euro1.minoreDi(new Euro(15, 25))); + } + + @Test + public void testStampa() { + assertEquals("10.5 euro", euro1.stampa()); + } +} \ No newline at end of file