diff --git a/ATM Log b/ATM Log new file mode 100644 index 0000000..167fa48 --- /dev/null +++ b/ATM Log @@ -0,0 +1 @@ +7ZpLc6M4EIB/DcfZAmMc5xh7JrNTldROrXdrzzLIoA0gSgjjzK/fFki8JCfEr82BlKuCWi/Un1rdDVjuOjl8ZyiLnmmAY2tmBwfL/WrNZs7cteGfkLzWkqXt1IKQkUA2agUb8gtLoewXFiTAea8hpzTmJOsLfZqm2Oc9GWKMlv1mOxr3Z81QiDXBxkexLv2HBDySq/DsVv47JmGkZnZsWbNF/kvIaJHK+ayZu6v+6uoEqbFk+zxCAS07Iveb5a4Zpby+Sg5rHAvdKrXV/R6P1Db3zXDKx3SY1R32KC7k0h/+epa3xl+VOsqIcLzJkC/KJSC33FXEkxhKDlyiPKsh7MgBw8Ar/S7kje0x4/jQEcm7+o5pgjl7hSay1l1KDZWt/hdSFHVUr2RIEg+bkdpVw4VcuFkJnqYEa7aIYYJVARehuHjwOaFpruQwYlOlZAHZK1FJeBQwVHaad2oNHQKc0Zzw0e39CPsv1XaLUQpURvdjGHFobqe4FErzfdiq46cFM8dV9492HMxb5Jjd6p45Q2m+E/PZW8xLjNMTBlGiLRtKhl0HllMdBcImKkN5z45iEqZwHeNdO9hZVuQo82jOYc2oHM9gVc4lzGrxvln9sf0XTo6xZvV3tW1sknLMdugD2/6hxp1/hDdKBJ10m2dV2R4hWgurJGl45Wk2aH/9SX6ke5zzBH9Ea5LPI/I5FVvlU1vIGxbhmCzCuYBF3L9vEVKHP9o9bq9jlI81kRDz5nwFQ8mKo2fc58Jg5DAzcPAugMHRT6b2hLDzYisiS6F0CEGHespLkoDPhdJqR1O+kTVdrfhYwAOBWD6BoPJBVnCaVb6bxMETeqWFWFLOIWJUpVVEGfkFwyKlaahmXMbHcKB2W2xETxDbIGU4hzY/FQFnIHpGh17DJ5RzKfBpHKMsJ9tmGQliIUlXlHOayEZq0Y8kjtc0pqzShYpsL+Kp5vO+pzJuCFMA6NjzC+yIO21HfBGW1xzog10Ai+IVHUZfsNJISutt0VGSFA3sxbwvcjA3mOupavN13kr+lIsVIgp9d3GVMUQkCCCYAaaUI45qgIJWRonYyXCj3gp+oLO1/ZtneXDjayg7bRl+ojnja4htIVAiFT4Mu6PE+RHLXowmq0guxoFU7c7iqJ+wgqPymBPFkyl6s9tRNGSlXyqf2AlJJpQno7xb3hClq6EcRonjHKx9tuc0bINP6UyvnwUafev8Wr51Njdacy9STVGCJ5tuCDdWc5aTNRG9iE3rz8sE0OY5jWTaPGOZsJ6M1eR1r4ZVz4pMWDPIi0rKgonrGVxNLvhqXPXcppPtwnAR1WFOXvjiXniY4Tbld+Mwe3mBXbB827qn01qz6rvRhP+HTNfwLFHw1N/QTDxP5nnLnNd1NJ7WTDyYf/v91UT3ZLq3TIPVUa/RbV782gkg0bPhCeh4oE22ehOix+y1ffc/IT0fqTs2RroEUv2xY40UTltWCKdKxErF6iamZzD1bhgmufrBK8KkPel/SzLhPB3n8oZR0lx/nKzBw2nwID4BhFL1Epf4Vu/ldd0BB9oXgIPcTl9xZ4Wmj2aUjOEYcbLvD29atZzhpwDayRPvj+SJaoicFszHslerO20gb5BwuveDgSA3DzHXBqogNMs2cYFi+4li3bz9DtT99h8= \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9901415..7ba8c0f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,27 @@ io.zipcoder project-2-atm 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + + + junit + junit + 4.12 + + + \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java deleted file mode 100644 index 05e41a9..0000000 --- a/src/main/java/Main.java +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Created by iyasuwatts on 10/17/17. - */ -public class Main { - - public static void main(String[] args){ - - } -} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/ATM.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/ATM.java new file mode 100644 index 0000000..ca06bfd --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/ATM.java @@ -0,0 +1,33 @@ +package fountain.donald.atmproject.RoughCopy.ATMFunctions; + + +public class ATM { + + /*public void bullShit(){ + String userInput = Console.getStringInput("Ask for password"); + } + + public void start(String bullShit) { + + System.out.println("Welcome to Zip Code Wilmington Federal Credit Union.\n"); + int userInput = Console.getIntInput("If you have an account please input '1' if you do not have an account please input '2'."); + + boolean terminator = false; + + while(terminator == false) { + switch (bullShit) { + case 1: + Accounts.userLogin(); + terminator = true; + break; + case 2: + UserFactory.createUser(); + terminator = true; + break; + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("If you have an account please input '1' if you do not have an account please input '2'."); + } + } + }*/ +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Console.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Console.java new file mode 100644 index 0000000..674d3a0 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Console.java @@ -0,0 +1,18 @@ +package fountain.donald.atmproject.RoughCopy.ATMFunctions; + +import java.util.Scanner; + +public class Console { + public static String getStringInput(String promptUser) { + Scanner string = new Scanner(System.in); + System.out.println(promptUser); + String userInput = string.nextLine(); + return userInput;} + + public static int getIntInput(String askUser) { + Scanner integer = new Scanner(System.in); + System.out.println(askUser); + int Input = integer.nextInt(); + return Input; + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Main.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Main.java new file mode 100644 index 0000000..f8b6f49 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMFunctions/Main.java @@ -0,0 +1,21 @@ +package fountain.donald.atmproject.RoughCopy.ATMFunctions; + +import fountain.donald.atmproject.RoughCopy.Accounts.Account2; + +/** + * Created by iyasuwatts on 10/17/17. + */ +public class Main { + + public static void main(String[] args){ + + // ATM atmTransaction = new ATM(); + // atmTransaction.start(); + Console console=new Console(); + Account2 donaldsAccount = new Account2(100.00); + donaldsAccount.withdrawMoney((double)(console.getIntInput("Enter withdrawal amount"))); + System.out.println("The new balance is: " + donaldsAccount.getAccountBalance()); + + + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/ATMTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/ATMTest.java new file mode 100644 index 0000000..92e272a --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/ATMTest.java @@ -0,0 +1,23 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + + +import fountain.donald.atmproject.RoughCopy.ATMFunctions.ATM; +import org.junit.Test; + +public class ATMTest { + + @Test + public void startTest(){ + //Given: + ATM atm = new ATM(); + String output = "Welcome to Zip Code Wilmington Federal Credit Union.\n" + + "If you have an account please input '1' if you do not have an account please input '2'.\n" + + ""; + + + //Expected: + + + //Actual: + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/CheckingTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/CheckingTest.java new file mode 100644 index 0000000..556fcfc --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/CheckingTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class CheckingTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/InvestmentTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/InvestmentTest.java new file mode 100644 index 0000000..601108f --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/InvestmentTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class InvestmentTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/MainTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/MainTest.java new file mode 100644 index 0000000..9c50b84 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/MainTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class MainTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/SavingTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/SavingTest.java new file mode 100644 index 0000000..97eece1 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/SavingTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class SavingTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserFactoryTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserFactoryTest.java new file mode 100644 index 0000000..8a5f092 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserFactoryTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class UserFactoryTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserTest.java new file mode 100644 index 0000000..b75df9e --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class UserTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserWarehouseTest.java b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserWarehouseTest.java new file mode 100644 index 0000000..216c74c --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/ATMProjectTest/UserWarehouseTest.java @@ -0,0 +1,4 @@ +package fountain.donald.atmproject.RoughCopy.ATMProjectTest; + +public class UserWarehouseTest { +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Account2.java b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Account2.java new file mode 100644 index 0000000..c6afb96 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Account2.java @@ -0,0 +1,32 @@ +package fountain.donald.atmproject.RoughCopy.Accounts; + +import java.util.ArrayList; + +public class Account2 +{ + + private int accountNumber; + + private double accountBalance; + + private String typeOfAccount; + + private ArrayList transactionHistory; + + public Account2(double initialBalance) + { + this.accountBalance=initialBalance; + } + + public double getAccountBalance(){ + + return this.accountBalance; + } + + public double withdrawMoney(double withdrawAmount){ + + this.accountBalance -= withdrawAmount; + + return accountBalance; + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Accounts.java b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Accounts.java new file mode 100644 index 0000000..1c87dfc --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Accounts.java @@ -0,0 +1,241 @@ +package fountain.donald.atmproject.RoughCopy.Accounts; + +import fountain.donald.atmproject.RoughCopy.ATMFunctions.Console; +import fountain.donald.atmproject.RoughCopy.User.UserWarehouse; + + +public abstract class Accounts { + + + + private String createAccount(int userInput) { + + //userInput = Console.getIntInput("Please input what type of account you'd like to create.\n" + + //"Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //create a checking account + break; + case 2: + //create a savings account + break; + case 3: + //create an investment account + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + } + return ""; //what type of account they created + } + + private String deleteAccount() { + int userInput = Console.getIntInput("Please input what type of account you'd like to delete.\n" + + "Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //delete a checking account + break; + case 2: + //delete a savings account + break; + case 3: + //delete an investment account + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + } + return "";//what account they just delete + } + + private String viewAccount() { + int userInput = Console.getIntInput("Please input what type of account you'd like to view.\n" + + "Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //view a checking account + break; + case 2: + //view a savings account + break; + case 3: + //view an investment account + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + } + return "";//the info for the account they chose to view + } + + private void transferBetweenAccounts() { + int userInput = Console.getIntInput("Please input which accounts that you'd like to transfer money between.\n" + + "Please indicate what account you'd like to transfer FROM by\n" + + " entering '1' for checking account, entering '2' for savings account and entering'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //view checking account balance + break; + case 2: + //view savings account balance + break; + case 3: + //view investment account balance + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + } + + userInput += Console.getIntInput("Please indicate what account you'd like to transfer TO by\n" + + " entering '1' for checking account, entering '2' for savings account and entering'3' for an investment account."); + + while (terminator = true) { + switch (userInput) { + case 1: + //view checking account balance + break; + case 2: + //view savings account balance + break; + case 3: + //view investment account balance + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + + //call view method to show user account information for both accounts + + int amountToTransfer = Console.getIntInput("How much money would you like to transfer between accounts?"); + + //transfer the desired amount between specified accounts + + } + } + private String depositMoney(){ + + int userInput = Console.getIntInput("Please indicate which account you'd like to deposit money into.\n" + + "Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //view checking account balance + break; + case 2: + //view savings account nalance + break; + case 3: + //view investment account balance + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + + int amountToDeposit = Console.getIntInput("How much money would you like to deposit?"); + + //call method to deposit indicated amount into indicated account + } + return "";//new account balance + } + + private String withDrawMoney(){ + + int userInput = Console.getIntInput("Please indicate which account you'd like to withdraw money from.\n" + + "Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //view checking account balance + break; + case 2: + //view savings account nalance + break; + case 3: + //view investment account balance + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + + int amountToDeposit = Console.getIntInput("How much money would you like to withdraw?\n" + + "All withdraw requests must be in $20 and no more than $600."); + + //call method to withdraw indicated amount from indicated account + } + return "";//new account balance + } + + private void interestedAccrued() { + + int userInput = Console.getIntInput("Please indicate which account you'd like to view accrued interest.\n" + + "Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + + boolean terminator = false; + + while (terminator = true) { + switch (userInput) { + case 1: + //view checking account interest + break; + case 2: + //view savings account interest + break; + case 3: + //view investment account insterest + default: + System.out.println("Please enter a correct response.\n"); + userInput = Console.getIntInput("Please enter '1' for checking account, enter '2' for savings account and enter'3' for an investment account."); + continue; + } + terminator = false; + + } + } + public static void userLogin(){ + + String userInput = Console.getStringInput("Please enter your first and last name, account number, and password"); + + if(UserWarehouse.getUsers().equals(userInput)){ + //get user accounts + } + + } +} \ No newline at end of file diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Checking.java b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Checking.java new file mode 100644 index 0000000..cbf6355 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Checking.java @@ -0,0 +1,7 @@ +package fountain.donald.atmproject.RoughCopy.Accounts; + +public class Checking extends Accounts { + + + +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Investment.java b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Investment.java new file mode 100644 index 0000000..dc80079 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Investment.java @@ -0,0 +1,7 @@ +package fountain.donald.atmproject.RoughCopy.Accounts; + +public class Investment extends Accounts { + + + +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Saving.java b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Saving.java new file mode 100644 index 0000000..aa71370 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/Accounts/Saving.java @@ -0,0 +1,7 @@ +package fountain.donald.atmproject.RoughCopy.Accounts; + +public class Saving extends Accounts { + + + +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/User/User.java b/src/main/java/fountain/donald/atmproject/RoughCopy/User/User.java new file mode 100644 index 0000000..af9b7ce --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/User/User.java @@ -0,0 +1,25 @@ +package fountain.donald.atmproject.RoughCopy.User; + +public class User { + public static String name; + public static Integer accountNumber; + public static String password; + + public User(String name, int accountNumber, String password) { + this.name = name; + this.accountNumber = accountNumber; + this.password = password; + } + + public String getName() { + return name; + } + + public int getAccountNumber() { + return accountNumber; + } + + public String getPassword() { + return password; + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserFactory.java b/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserFactory.java new file mode 100644 index 0000000..61f447f --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserFactory.java @@ -0,0 +1,25 @@ +package fountain.donald.atmproject.RoughCopy.User; + +import fountain.donald.atmproject.RoughCopy.ATMFunctions.Console; + +import java.util.Random; + +public class UserFactory extends User { + + public UserFactory(String name, int accountNumber, String password) { + super(name, accountNumber, password); + } + + public static User createUser(String bullShit){ + String name = Console.getStringInput("Please enter your first and last name: "); + String password = Console.getStringInput("Please create a password using no more then 10 digits: "); + Random rnd = new Random(); + int accountNumber = 100000 + rnd.nextInt(900000);; + System.out.println("Your account number is: " + accountNumber); + + User newUser = new User(name, accountNumber, password); + + + return newUser; + } +} diff --git a/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserWarehouse.java b/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserWarehouse.java new file mode 100644 index 0000000..04645e1 --- /dev/null +++ b/src/main/java/fountain/donald/atmproject/RoughCopy/User/UserWarehouse.java @@ -0,0 +1,24 @@ +package fountain.donald.atmproject.RoughCopy.User; + +import java.util.ArrayList; + +public class UserWarehouse extends User { + + public UserWarehouse(String name, int accountNumber, String password) { + super(name, accountNumber, password); + } + + private static ArrayList users = new ArrayList(); + + public ArrayList setUser(User newUser) { + + users.add(newUser); + return users; + + } + + public static ArrayList getUsers() { + return users; + } +} + diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/ATM.java b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/ATM.java new file mode 100644 index 0000000..c29baf3 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/ATM.java @@ -0,0 +1,22 @@ +package foutain.donald.atmproject.bettercopy.ATMFunctions; + +import foutain.donald.atmproject.bettercopy.UserFunctions.UserFactory; +import foutain.donald.atmproject.bettercopy.UserFunctions.UserWarehouse; + +public class ATM { + + public void startATM(){ + int userInput = PromptUser.userStartATM(); + boolean terminator = true; + while(terminator == true){ + if("1".equals(userInput)){ + // UserFactory.createNewUser(); + } else if("2".equals(userInput)){ + UserWarehouse.userLogin(); + } else { + PromptUser.correctResponse(); + } + } + } + +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/Console.java b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/Console.java new file mode 100644 index 0000000..7fe5490 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/Console.java @@ -0,0 +1,27 @@ +package foutain.donald.atmproject.bettercopy.ATMFunctions; + +import java.util.Scanner; + +public class Console { + + public static String getStringInput(String askForString){ + Scanner string = new Scanner(System.in); + System.out.println(askForString); + String userInput = string.nextLine(); + return userInput; + } + + public static int getIntInput(String askForInt){ + Scanner integer = new Scanner(System.in); + System.out.println(askForInt); + int userInput = integer.nextInt(); + return userInput; + } + + public static double getDoubleInput(String askForDouble){ + Scanner dub = new Scanner(System.in); + System.out.println(askForDouble); + double userInput = dub.nextDouble(); + return userInput; + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/PromptUser.java b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/PromptUser.java new file mode 100644 index 0000000..54e9abe --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/ATMFunctions/PromptUser.java @@ -0,0 +1,32 @@ +package foutain.donald.atmproject.bettercopy.ATMFunctions; + +public class PromptUser { + + public static int userStartATM(){ + int userInput = Console.getIntInput("Hello, welcome to Zip Code Federal credit Union.\n" + + "If you are a new user please input '1'.\n" + + "If you would like to login to an existing account please enter '2'."); + return userInput; + } + + public static String getUserName(){ + String userInfo = Console.getStringInput("Please enter your first and last name."); + return userInfo; + } + + public static String getUserPassWord(){ + String userInfo = Console.getStringInput("Please enter your password."); + return userInfo; + } + + public static int getUserAccountType(){ + int userInfo = Console.getIntInput("Account type options\n"+ + "1: Checking\n2: Savings\n 3: Investments"); + return userInfo; + } + + public static int correctResponse(){ + int userInfo = Console.getIntInput("Please reread the above directions and answer appropriately."); + return userInfo; + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Account.java b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Account.java new file mode 100644 index 0000000..b0d7a0f --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Account.java @@ -0,0 +1,85 @@ +package foutain.donald.atmproject.bettercopy.AccountFunctions; + +import java.util.ArrayList; + +public class Account { + + private int accountNumber; + + private double accountBalance; + + private String typeOfAccount; + + private ArrayList transactionHistory; + + //Getter and Setter for TypeOfAccount + + public String getTypeOfAccount() { + return typeOfAccount; + } + + public void setTypeOfAccount(String typeOfAccount) { + this.typeOfAccount = typeOfAccount; + } + + //Getter and Setter for AccountNumber + + public int getAccountNumber() { + return accountNumber; + } + + public void setAccountNumber(int accountNumber) { + this.accountNumber = accountNumber; + } + + //Getter and Setter for AccountBalance + + public double getAccountBalance() { + return accountBalance; + } + + public void setAccountBalance(double accountBalance) { + this.accountBalance = accountBalance; + } + + //Getter and Setter for TransactionHistory + + public ArrayList getTransactionHistory() { + return transactionHistory; + } + + public void setTransactionHistory(ArrayList transactionHistory) { + this.transactionHistory = transactionHistory; + } + + //Methods for Accounts + + public String withdrawMoney(double withdrawAmount){ + + this.accountBalance -= withdrawAmount; + + return "Your new account balance is: " + accountBalance; + } + + public String closeAccount(){ + + return "Your account has been closed"; + } + + public String depositMoney(double depositAmount){ + + this.accountBalance += depositAmount; + + return "Your new account balance is: " + accountBalance; + } + + public ArrayList printTransactionHistory(ArrayList transactionHistory){ + + return this.transactionHistory; + } + + public String openAccountType(){ + + return "You have just opened a " + typeOfAccount; + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Checking.java b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Checking.java new file mode 100644 index 0000000..39162bd --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Checking.java @@ -0,0 +1,4 @@ +package foutain.donald.atmproject.bettercopy.AccountFunctions; + +public class Checking { +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Investments.java b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Investments.java new file mode 100644 index 0000000..6accd7c --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Investments.java @@ -0,0 +1,4 @@ +package foutain.donald.atmproject.bettercopy.AccountFunctions; + +public class Investments { +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Saving.java b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Saving.java new file mode 100644 index 0000000..9d632a2 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/AccountFunctions/Saving.java @@ -0,0 +1,4 @@ +package foutain.donald.atmproject.bettercopy.AccountFunctions; + +public class Saving { +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Main.java b/src/main/java/foutain/donald/atmproject/bettercopy/Main.java new file mode 100644 index 0000000..b62814e --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Main.java @@ -0,0 +1,21 @@ +package foutain.donald.atmproject.bettercopy; + +import foutain.donald.atmproject.bettercopy.ATMFunctions.ATM; +import foutain.donald.atmproject.bettercopy.UserFunctions.User; +import foutain.donald.atmproject.bettercopy.UserFunctions.UserFactory; +import foutain.donald.atmproject.bettercopy.UserFunctions.UserWarehouse; + +/** + * Created by iyasuwatts on 10/17/17. + */ +public class Main { + + public static void main(String[] args){ + ATM newATM = new ATM(); + newATM.startATM(); + + UserWarehouse warehouse = new UserWarehouse(); + User Logan = UserFactory.createNewUser("Logan", "Password"); + warehouse.addUserToList(Logan); + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/AccountTests.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/AccountTests.java new file mode 100644 index 0000000..9ed9435 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/AccountTests.java @@ -0,0 +1,66 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +import foutain.donald.atmproject.bettercopy.AccountFunctions.Account; +import org.junit.Assert; +import org.junit.Test; + +public class AccountTests { + + Account newAccount = new Account(); + + @Test + public void getTypeOfAccountTest(){ + String expected = "Checking"; + + newAccount.setTypeOfAccount(expected); + String actual = newAccount.getTypeOfAccount(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getAccountNumber(){ + int expected = 10000; + + int accountNumber = 10000; + newAccount.setAccountNumber(accountNumber); + int actual = newAccount.getAccountNumber(); + + Assert.assertEquals(expected, accountNumber); + } + + @Test + public void getAccountBalance(){ + double expected = 100.55; + + double accountBalance = 100.55; + newAccount.setAccountBalance(accountBalance); + double actual = newAccount.getAccountBalance(); + + Assert.assertEquals(expected, actual, 0); + } + + @Test + public void withDrawMoneyTest(){ + String expected = "Your new account balance is: 200.0"; + + double accountBalance = 260; + double withDrawAmount = 60; + newAccount.setAccountBalance(accountBalance); + String actual = newAccount.withdrawMoney(withDrawAmount); + + Assert.assertEquals(expected,actual); + } + + @Test + public void depositMoneyTest(){ + String expected = "Your new account balance is: 260.0"; + + double accountBalance = 200; + double depositAmount = 60; + newAccount.setAccountBalance(accountBalance); + String actual = newAccount.depositMoney(depositAmount); + + Assert.assertEquals(expected,actual); + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/CheckingTest.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/CheckingTest.java new file mode 100644 index 0000000..d2c3ffe --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/CheckingTest.java @@ -0,0 +1,4 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +public class CheckingTest { +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/InvestmentTests.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/InvestmentTests.java new file mode 100644 index 0000000..91e864d --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/InvestmentTests.java @@ -0,0 +1,4 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +public class InvestmentTests { +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserFactoryTests.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserFactoryTests.java new file mode 100644 index 0000000..1ef6ee6 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserFactoryTests.java @@ -0,0 +1,43 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +import foutain.donald.atmproject.bettercopy.UserFunctions.User; +import foutain.donald.atmproject.bettercopy.UserFunctions.UserFactory; +import org.junit.Assert; +import org.junit.Test; + +public class UserFactoryTests { + + /*@Test + public void createNewUserTest(){ + //Given: + UserFactory newUser = new UserFactory(); + String expected = "Donald Fountain" + "Password"; + + //When; + String password = "Password"; + String userName = "Donald Fountain"; + User expectedInput = newUser.createNewUser(userName, password); + String outPut = expectedInput.getUserName() + expectedInput.getUserPassword(); + + //Then: + Assert.assertEquals(expected, outPut); + } +*/ + @Test + public void createNewUserTestLeon(){ + //Given: + UserFactory userCreator = new UserFactory(); + String expectedUsername = "Donald Fountain"; + String expectedPassword = "Password"; + + // : When + User expectedUser = userCreator.createNewUser(expectedUsername, expectedPassword); + String actualUsername = expectedUser.getUserName(); + String actualPassword = expectedUser.getUserPassword(); + + + // : Then + Assert.assertEquals(expectedPassword, actualPassword); + Assert.assertEquals(expectedUsername, actualUsername); + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserTests.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserTests.java new file mode 100644 index 0000000..4e156e1 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserTests.java @@ -0,0 +1,49 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +import foutain.donald.atmproject.bettercopy.UserFunctions.User; +import org.junit.Assert; +import org.junit.Test; + +public class UserTests { + User newUser = new User(); + + @Test + public void randomAccountGeneratorTest(){ + int expected = 0; + + int actual = newUser.randomAccountGenerator(); + + Assert.assertNotEquals(expected, actual); + } + + @Test + public void getAccountNumberTest(){ + int expected = 0; + + int newAccountNUmber = 10000; + newUser.setAccountNumber(newAccountNUmber); + int actual = newUser.getAccountNumber(); + + Assert.assertNotEquals(expected,actual); + } + + @Test + public void getUserName(){ + String expected = "Donald Fountain"; + + newUser.setUserName(expected); + String actual = newUser.getUserName(); + + Assert.assertEquals(expected, actual); + } + + @Test + public void getUserPassword(){ + String expected = "Password"; + + newUser.setUserPassword(expected); + String actual = newUser.getUserPassword(); + + Assert.assertEquals(expected, actual); + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserWarehouseTests.java b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserWarehouseTests.java new file mode 100644 index 0000000..dfa3087 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/Tests/UserWarehouseTests.java @@ -0,0 +1,15 @@ +package foutain.donald.atmproject.bettercopy.Tests; + +import foutain.donald.atmproject.bettercopy.UserFunctions.User; +import foutain.donald.atmproject.bettercopy.UserFunctions.UserWarehouse; +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; + +public class UserWarehouseTests { + + @Test + public void addUserToListTest(){ + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/User.java b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/User.java new file mode 100644 index 0000000..48bb2e3 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/User.java @@ -0,0 +1,43 @@ +package foutain.donald.atmproject.bettercopy.UserFunctions; + +import java.util.Random; + +public class User { + + private String userPassword; + + private int accountNumber; + + private String userName; + + //Random account number generator + + public int randomAccountGenerator() { + Random rnd = new Random(); + int accountNumber = 100000 + rnd.nextInt(900000); + return accountNumber; + } + + //Getters and Setters + + public int getAccountNumber() { + return accountNumber; + } + + public String getUserName() { return userName; } + + public String getUserPassword() { + return userPassword; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public void setAccountNumber(int accountNumber) { + this.accountNumber = accountNumber; + } + + public void setUserPassword(String userPassword) { this.userPassword = userPassword; + } +} diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserFactory.java b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserFactory.java new file mode 100644 index 0000000..784469e --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserFactory.java @@ -0,0 +1,26 @@ +package foutain.donald.atmproject.bettercopy.UserFunctions; + +import java.util.ArrayList; + + +public class UserFactory { + + + + public static User createNewUser(String userName, String userPassword){ + User newUser = new User(); + newUser.setUserName(userName); + newUser.setUserPassword(userPassword); + return newUser; + } + + private static ArrayList users; + + public void addUserToList(User user){ + this.users.add(user); + } + + public UserFactory(){ + users = new ArrayList<>(); + } + } diff --git a/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserWarehouse.java b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserWarehouse.java new file mode 100644 index 0000000..8ce3101 --- /dev/null +++ b/src/main/java/foutain/donald/atmproject/bettercopy/UserFunctions/UserWarehouse.java @@ -0,0 +1,27 @@ +package foutain.donald.atmproject.bettercopy.UserFunctions; + +import java.util.ArrayList; + +public class UserWarehouse { + + private static ArrayList usersList; + + public void addUserToList(User user){ + this.usersList.add(user); + } + + public UserWarehouse(){ + usersList = new ArrayList<>(); + } + + public static void userLogin() { + } + + public User getUserFromList(String user) { + for (User userLookingFor : usersList) { + if (userLookingFor.getUserName().equals(user)) + return userLookingFor; + } + return null; + } + }