From ce2bf7d70198cc64351fb199da198d3eafe34541 Mon Sep 17 00:00:00 2001 From: Ryan Gross Date: Tue, 17 Jan 2017 18:56:38 -0500 Subject: [PATCH] Lab: UML w/ Limited Functionality for Overdraft Protection --- .idea/.name | 1 + .idea/compiler.xml | 16 + .idea/inspectionProfiles/Project_Default.xml | 5 + .idea/libraries/Maven__junit_junit_4_12.xml | 13 + .../Maven__org_hamcrest_hamcrest_core_1_3.xml | 13 + .idea/misc.xml | 60 ++ .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 907 ++++++++++++++++++ Access_Control_Lab.iml | 17 + BankAccount.xml | 2 + pom.xml | 18 + src/main/java/gross/ryan/Bank.java | 24 + src/main/java/gross/ryan/BankAccount.java | 143 +++ src/main/java/gross/ryan/Main.java | 16 + src/test/java/gross/ryan/BankAccountTest.java | 72 ++ target/classes/gross/ryan/Bank.class | Bin 0 -> 1088 bytes .../gross/ryan/BankAccount$allStatus.class | Bin 0 -> 1123 bytes .../gross/ryan/BankAccount$kindsOfAccts.class | Bin 0 -> 1153 bytes .../ryan/BankAccount$overDraftOptions.class | Bin 0 -> 1168 bytes target/classes/gross/ryan/BankAccount.class | Bin 0 -> 4064 bytes target/classes/gross/ryan/Main.class | Bin 0 -> 848 bytes .../gross/ryan/BankAccountTest.class | Bin 0 -> 2229 bytes target/test-classes/gross/ryan/BankTest.class | Bin 0 -> 706 bytes 24 files changed, 1321 insertions(+) create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/libraries/Maven__junit_junit_4_12.xml create mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 Access_Control_Lab.iml create mode 100644 BankAccount.xml create mode 100644 pom.xml create mode 100644 src/main/java/gross/ryan/Bank.java create mode 100644 src/main/java/gross/ryan/BankAccount.java create mode 100644 src/main/java/gross/ryan/Main.java create mode 100644 src/test/java/gross/ryan/BankAccountTest.java create mode 100644 target/classes/gross/ryan/Bank.class create mode 100644 target/classes/gross/ryan/BankAccount$allStatus.class create mode 100644 target/classes/gross/ryan/BankAccount$kindsOfAccts.class create mode 100644 target/classes/gross/ryan/BankAccount$overDraftOptions.class create mode 100644 target/classes/gross/ryan/BankAccount.class create mode 100644 target/classes/gross/ryan/Main.class create mode 100644 target/test-classes/gross/ryan/BankAccountTest.class create mode 100644 target/test-classes/gross/ryan/BankTest.class diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..c2ba6ab --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +BankAccount \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..577caa2 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..8d66637 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml new file mode 100644 index 0000000..d411041 --- /dev/null +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..f58bbc1 --- /dev/null +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..46e8b78 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + Class structureJava + + + Code maturity issuesJava + + + Code style issuesJava + + + Google Web Toolkit issues + + + Java + + + Java language level migration aidsJava + + + Javadoc issuesJava + + + Performance issuesJava + + + Spring + + + Spring AOPSpring + + + TestNGJava + + + Threading issuesJava + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..767d9ff --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..dd0c1b8 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,907 @@ + + + + + + + + + + + + + + + + getTyp + + + + + + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1484681427529 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No facets are configured + + + + + + + + + + + + + + + 1.8 + + + + + + + + Access_Control_Lab + + + + + + + + 1.8 + + + + + + + + Maven: junit:junit:4.12 + + + + + + + + \ No newline at end of file diff --git a/Access_Control_Lab.iml b/Access_Control_Lab.iml new file mode 100644 index 0000000..03320bd --- /dev/null +++ b/Access_Control_Lab.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BankAccount.xml b/BankAccount.xml new file mode 100644 index 0000000..482a142 --- /dev/null +++ b/BankAccount.xml @@ -0,0 +1,2 @@ + +7Vjfb6M4EP5rIqUPXWHIj+axSba3J+V2q81K9+yAAavGzhrTJP3rd4xtAoHoSO5y+5IqUvHn8Xjw9zEzMAgW2f4PibfpXyIibOB70X4QLAe+j7zAg38aORhk5E0NkEgaWaMjsKYfxK20aEEjkjcMlRBM0W0TDAXnJFQNDEspdk2zWLDmrluckBawDjFro3/TSKUGfRp7R/wLoUnqdkaendng8C2RouB2v4EfxOWfmc6w82Xt8xRHYleDgs+DYCGFUOYq2y8I02frjs2sezkzW8UtCVd9FkynE/IUj3E0QyQMxpNH6+Eds8KexRzzNxusOrgDync0Y5jDaJ6qjAGI4DIWXK2tkR5jRhMO1yFEQyQA70QqCsf8bCeU2AIappRFK3wQhY45V3CGbjRPhaQf4Ba7PWBaKqsYf9KwWOuVAHuASpKDzas7CFRBK5wraxMKxvA2p5sq4AzLhPK5UEpk1sjd6QtlbCGYkOUBOFbtPZtwENA3t+cHN0r2Z0lBFdXwCBGRESUPYFI9P2bFoTncHZXozyyW1lRYgdiqP6k8HxUAF1YEPQXhtwQx8CdMU7ORcJWo8p4NEtF3Bz3CGkZz9S1+DkN4HhTE9AzYs5T4oCfOe4EQa446fPdfeqJaoEQ1FZsrKd6I45WLUtFxjWoLOSUzEquzOs63OKQ8WZU2y9ER+W5J0tAupYqsAdcx7SB9AibAX8zKPJDSKCJcq1UorLCRptbhVtDyEJeD8Rx+QPXC+zQejOG+FjBGxzH8tLlUC8Hh/jAtVUdA9zuSq74S7c4Mbc1akcKj2EukCI1uINKgQ6Qn3DN6mq0M9y6/o6uIz4AuvYNj+ocWwvIRtdQQtNUQdLDM8IawV5FTRYX2L43tCfu/g2A06pmGnm7A76iD30AXdsojm1+GayXhcAHkOCMPJtvo2mXn78ng/9TKU89s4Pk3UMuss4c5p4N7K3PDVmY0afYyQUeZGHUII5jeopdxnVRHM3PSuuAwVD8OW2LSSJhi2bs7ccuBQlXkbQf/2DbpxV+LzKxkQue0C7cGtWIe2uAjUWhVXOrjC7wzEfkVcqlx49LrBW6oflQgy3zH6vpYdDpcShyrV0iC8K5X1sV+pPTyDzmR57j0uxJJrUld1ZrUe195u1Iyu7iv7EoYaHSLvhK1X4fvjeV/zDCadjSWXRTforFE/+L1luYvEheRSRkbIRjBHK5KL16MWX5ZosuJsi1KvXK8C4j9cjdl8RqaFOntH9q+uldB2RmaitO5qFcAsClPSOkNikdnW35FLUmIq2rDh76VsfeHhJO9NmajP/nPgsrD0DaPqnYoV9SxUJKIOoaHzkHlsdLPBS5jScgHcS6v5avgL9f5uRfF31UU0bTj/aqzKs4uf7+C4fH7czlX+8gffP4F \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..e71615a --- /dev/null +++ b/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + gross.ryan + BankAccount + 1.0-SNAPSHOT + + + junit + junit + 4.12 + + + + \ No newline at end of file diff --git a/src/main/java/gross/ryan/Bank.java b/src/main/java/gross/ryan/Bank.java new file mode 100644 index 0000000..720c910 --- /dev/null +++ b/src/main/java/gross/ryan/Bank.java @@ -0,0 +1,24 @@ +package gross.ryan; + +import java.util.ArrayList; +import java.util.HashMap; + +/** + * Created by ryangross on 1/17/17. + */ +public class Bank { + + protected HashMap allAccounts = new HashMap(); + + protected void addAccount(String name, String type, double number) { + BankAccount anAcct = new BankAccount(name, type,number); + allAccounts.put(name, anAcct); + } + + protected BankAccount getAccount(String name) { + if (allAccounts.containsKey(name)) { + return allAccounts.get(name); + } + return null; + } +} diff --git a/src/main/java/gross/ryan/BankAccount.java b/src/main/java/gross/ryan/BankAccount.java new file mode 100644 index 0000000..df24574 --- /dev/null +++ b/src/main/java/gross/ryan/BankAccount.java @@ -0,0 +1,143 @@ +package gross.ryan; + +import java.sql.Time; +import java.util.ArrayList; +import java.time.*; +import java.util.Timer; + + +/** + * Created by ryangross on 1/17/17. + */ +public class BankAccount { + private String acctType; + private double acctNumber; + private String overDraft = "protect"; + private double acctBalance; + private String acctName; + private double interestRate = 0; + private String acctStatus = "open"; + private ArrayList transactionLog = new ArrayList(); + public enum allStatus {open, closed, frozen} + public enum overDraftOptions {yes, no, protect} + public enum kindsOfAccts{checking, savings, investment} + + + private String getType() { + return this.acctType; + } + + public BankAccount(String aName, String type, double aNumber) { + this.acctName = aName; + //this.acctType = aType; + this.acctNumber = aNumber; + } + + private String getStatus() { + return this.acctStatus; + } + + private double getBalance(){ + return this.acctBalance; + + } + + private void addToLog(String anAction) { + LocalDateTime occurredOn = LocalDateTime.now(); + this.transactionLog.add(occurredOn + ": " + anAction); + } + + protected String balanceInquiry() { + if (this.getStatus().equals(allStatus.open.toString())) { + this.addToLog("Balance Inquiry."); + return ("Current Balance: " + this.getBalance()); + } else if (this.getStatus().equals(allStatus.closed.toString())) { + return "Account is closed."; + } else { + this.addToLog("Fraud Alert: Account Access Attempted"); + return "Error: Please call 1-877-383-4802 for more information."; + } + } + + private void setAccountName(String newName) { + if(this.getStatus().equals(allStatus.open)) { + this.acctName = newName; + } + } + + + protected boolean debitMoney(double someMoney) { + if (this.getStatus().equals(allStatus.open.toString())) { + this.addToLog("Deposit of " + someMoney + " successful."); + this.acctBalance += someMoney; + return true; + } + this.addToLog("Deposit of " + someMoney + " failed; closed/frozen acct."); + return false; + } + + private String getOverDraft() { + return this.overDraft; + } + + protected boolean overDraftProtect() { + if (this.getOverDraft().equals(overDraftOptions.protect.toString())) { + return true; + } + return false; + } + + + protected boolean creditMoney(double someMoney) { + if (this.getStatus().equals(allStatus.open.toString())) { + if (someMoney > this.acctBalance) { + if (this.overDraftProtect()) { + this.addToLog("Overdraft Protection: Transaction Blocked"); + return false; + } + } else { + this.addToLog("Transaction for " + someMoney + ": " + "Account is over-drafted"); + this.acctBalance -= someMoney; + return true; + } + } + return false; + } + + protected boolean closeAccount() { + if (this.getStatus().equals(allStatus.open.toString()) && this.getBalance() == 0) { + this.acctStatus = "closed"; + this.addToLog("Account closed."); + return true; + } + return false; + } + + protected void setOverDraft(String anOption) { + this.overDraft = anOption; + } + + protected boolean reOpenAccount() { + if (this.acctStatus.equals(allStatus.frozen.toString())) { + this.acctStatus = "open"; + this.acctStatus = "Account reopened."; + return true; + } + return false; + } + + + protected void setType(String newType) { + this.acctType = newType; + } + protected void setInterestRate(double aRate) { + if (!this.getType().equals(kindsOfAccts.checking.toString())) { + this.interestRate = aRate; + } + } + + public void setStatus(String newStatus) { + this.acctStatus = newStatus; + } + +} diff --git a/src/main/java/gross/ryan/Main.java b/src/main/java/gross/ryan/Main.java new file mode 100644 index 0000000..387dc44 --- /dev/null +++ b/src/main/java/gross/ryan/Main.java @@ -0,0 +1,16 @@ +package gross.ryan; + +/** + * Created by ryangross on 1/17/17. + */ +public class Main { + + + public static void main(String[] args) { + Bank initBank = new Bank(); + initBank.addAccount("ryan", "checking", 1234); + BankAccount myAccount = initBank.findAccount("ryan"); + System.out.println(initBank.findAccount("ryan")); + + } +} diff --git a/src/test/java/gross/ryan/BankAccountTest.java b/src/test/java/gross/ryan/BankAccountTest.java new file mode 100644 index 0000000..c754ed4 --- /dev/null +++ b/src/test/java/gross/ryan/BankAccountTest.java @@ -0,0 +1,72 @@ +package gross.ryan; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * Created by ryangross on 1/17/17. + */ +public class BankAccountTest { + BankAccount ryansAcct; + BankAccount fakeAcct; + BankAccount closedAcct; + + @Before + public void setUp() { + ryansAcct = new BankAccount("Ryan Gross", "checking", 5000); + ryansAcct.setType("checking"); + ryansAcct.debitMoney(50); + + fakeAcct = new BankAccount("Fake", "savings", 50000); + fakeAcct.setStatus("frozen"); + + closedAcct = new BankAccount("Meh", "savings", 10000); + closedAcct.setStatus("closed"); + + } + + @Test + public void balanceInquiryTest() { + Assert.assertEquals("Current Balance: 50.0", ryansAcct.balanceInquiry()); + Assert.assertEquals("Account is closed.", closedAcct.balanceInquiry()); + Assert.assertEquals("Error: Please call 1-877-383-4802 for more information.", fakeAcct.balanceInquiry()); + } + + @Test + public void debitMoneyTest() { + Assert.assertTrue(ryansAcct.debitMoney(50)); + Assert.assertFalse(fakeAcct.debitMoney(10)); + Assert.assertFalse(closedAcct.debitMoney(10)); + } + + @Test + public void checkOverDraftTest() { + Assert.assertTrue(ryansAcct.overDraftProtect()); + ryansAcct.setOverDraft("no"); + Assert.assertFalse(ryansAcct.overDraftProtect()); + ryansAcct.setOverDraft("yes"); + Assert.assertFalse(ryansAcct.overDraftProtect()); + } + + @Test + public void creditMoney() { + Assert.assertTrue(ryansAcct.creditMoney(50)); + Assert.assertFalse(ryansAcct.creditMoney(50)); + Assert.assertFalse(fakeAcct.creditMoney(50)); + } + @Test + public void closeAccount() { + Assert.assertFalse(ryansAcct.closeAccount()); + ryansAcct.creditMoney(50); + Assert.assertTrue(ryansAcct.closeAccount()); + Assert.assertFalse(fakeAcct.closeAccount()); + Assert.assertFalse(closedAcct.closeAccount()); + } + + @Test + public void reOpenAccount() { + Assert.assertTrue(fakeAcct.reOpenAccount()); + Assert.assertFalse(closedAcct.reOpenAccount()); + } +} diff --git a/target/classes/gross/ryan/Bank.class b/target/classes/gross/ryan/Bank.class new file mode 100644 index 0000000000000000000000000000000000000000..96f917d21cca48971fc54109d7ea14a59fe68179 GIT binary patch literal 1088 zcmZ`&ZEw<06n-ugkWvR54vO#7IVs@kbRUc?7=tgY^{dsEA=b4HX+H+*Of4Sw;+L zD$-O_sHJd^A;TT#X{X}`!XGf?o5%bUHv`{x%oluc^osZE4C$8L6Wk9xi{Z(9#m+e7 zaM3eczGsVGz1j2J!NBx}T$sb9r_E;i|mbjpi_v%L_<_+NNplh6DsZ3CGQ)iJU*| zQ!Xh&Vhn7T4qVU}pFy7`@mD2n^@A-YWNHh@82@ipTW;WWtUX(9AuZRpDXD45VVR`Q z-H-+i7a0nRcP`s>4Vy4E+{c!N2Y5*9o+)O?P2}&lk1Z)M-Vew=nr1&v)u)ylMU43n zt)b%zpW9;a(i$?XE&wv#)0mz`V>T9L=RvVXA9aR4cDfv?o8C)wiXn?Q`LrUkD->yj zXCPM@fmO~CI~*bY4a%3WI!{*q2SA!|GPp#ZMx9iTRTSv0pa?y}@{ptl(9e-Ltk#SX zl8+OWuTZL`#2HfWCYVb!6~ss*K1ITkxZCvmQE!ARy%H{mvvgb`PqNT)71yX&-sN@N zpbiB$N$Xh4TdI*&rEumME__Bda??MNIAy1lj6sST6Uc{>iX=o5D2$u`5hz6j7;c4q GxBmcJnDD3o literal 0 HcmV?d00001 diff --git a/target/classes/gross/ryan/BankAccount$allStatus.class b/target/classes/gross/ryan/BankAccount$allStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..48a1ed4b1fb4434c7df035f1f8620bf2756eef8c GIT binary patch literal 1123 zcma)4VQ&&a5Pb^=2iGegr6_IH+EN9oMYOFZkOpjO(uCL#rzFHr%k_#^k3Dl7P4rhO zO{~#q`q>|4oIObku}L|S9cJgvn>Vxb`_K1Z04jJMhk~Mp64q5@RXoy=z=k}^F(fq# zmL=kG40F;}V#rAQM8#7E#r&!F!MVR^d_@AoZoSDIbV?f1*xM=r`Q zxOm?%O?M#t{6$KYA!<5q-#Vl}N1pphGOGDjqxojfU|4-S6~hU42D08-p*U57vg;mN z49TV~tXG3x$MRnDjzc$Uz;tlLuw7^#^AlcnxagJ*-?K%xTAW5qy6KwSX>re%lp|h6 z@E*~p|L3H(Yqqfc9fs@`CHIRh8npk;rtac~-4!%vkC?&*8Hm+PXOz4-M!hEnz1sC! zcWC&U;SN00dTGn46JfuZyD?`i}?Z^mO13bR|a-NnNtwW2;n7|kSy|HO0xLrQpzZFw@KSA@n7jk z#Aq~p_D31dt&5b%hutRkq@1P@)r;dd#)lj^I%*ph{^=2DEkC8z!$M zO7DtZcYP$e8+03b%kKrY^Tw4kC?u|JSZJ%*d7{0y#|K4j87%dqh?)eE{|asY|3kk;gDYdp3?u5q=hP zL;MO-@u_Yq)vw50LXr5?HT+#VG5(@(5BK9Z&5Tfzv5qu-fLdLeyFm7H98S_*rK=>5 zq+>qDl%Zh(<)M%^H6qv6cPMRBOIac=iY3(gS*KZDoM5Ry#Am fc1QVPlbD`kl@ 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 cF;9tWSRl4`bY$xFY17Qa4Ok9gTLEocK z(A74w+O_(p|N10-imvWEGbT~f#o~UPbMD>y?z1z0|NHx&07l^_F^HK2W_8Tzn2+aw z`H^uTi54uhV*rb4^<_N&EC>hjXF9&p@pU}^&p{AWWlK7iRpoOXEAjka;Uy}us^c3S zYbv*%L;){!Z0Oij%WvcP+wX5J;H4_r((y{ouXSvz`HdRBQ^WTOSP2w0w98Y=@uo{9 zU&EE9J?VO0R)w-NmUGCkTXFoy8uVT3P=r;z{FLKduInGtizEm`FaOWJB51!Mlc?P<97Kd=SiDd;v&_%Dt%^sJGJeIzz) z&*mM|j^p~4Z@Uh!;PrAZdr%>l?2OoTrQkucXq7FeB%V1Z6oi_Xjv2bep|&3qFR(cp5}x&z zHJ*VX+|>}@mF^G1F|ZFNTbISYf#Dz#Hc&(NY(+}p`01HYs7LAhBf}#GY#bzTXrPQE zsu(>gZF}kP;IM{?c`04_D7{)1mM79|Z8<$Ul$)3s8q19hjps)0rP+k^5gU=V9WIZ8 zP7NDy;2Jnq!wIB@7KbY@Ab2Xs{3-axNk{`zD&5;$o~V^d$1GdCmt83y2<6~RW~m-r z_a)_c{ApxPSv5gh6;6*SO?Q(+sv=qU1vSph4Q%n}!c*(CU4>og{Lo))bY|dFFj}te z&1ugQk~|G7Sj?YPtTJ!vZ)6a@rIB_N2{?rZ3$jAuvCNi=oeN_Nyo$jK?t9;^O4kom z;ct`F4N|Xp8aMed8RX}pmH)I;@Zq3sf|)MitV2^Ctisp~ zt2)fi6wU`#7n!_hnpJd#sgz1}2dT?UT{f>URVQ_e+<}WQ`F9mv=tDPhxP)n3!8&^I zn$bGp?TGM1^qgEk{$Y*$D?UQK{Epe9I9AbnhO6c^g&VD}D|+F&PQpZthi*`nG+}Sz zHf}Y5-uVdhQ2_e52Kt7LQJ@(G8Om~o&lFAyH>lAWZYlz`&BwTX=s-Vuk>NPdfSYNG z`=o~JMvom;xK-Q=L3Q){(2O*NRRaap7VlnJ`kORLC)0uYR= a2C&ZHM?6ok1*EXp0MOkOAkQmXF#R8^Y_@Fx literal 0 HcmV?d00001 diff --git a/target/test-classes/gross/ryan/BankTest.class b/target/test-classes/gross/ryan/BankTest.class new file mode 100644 index 0000000000000000000000000000000000000000..86bf603f4f42f150b201e87449d21a40d1366aed GIT binary patch literal 706 zcmZXR+fLg+5QhJCjyUEN4kamVfl?HLRIAsZs?e%eRx1IG)XR;tgbiVh>_ zN_~Jn6ymo@F-k8yo|&Eho0;9ecej54yu+4@8dfWK;ljb{6kNQl;#C!EB{hb0#n!^y4T={P;>5KTYill=rmJ_Ps!%wcQaYevEobU^dW3eHop1 zReUVFLuTqh6v|;o#yXA1$)Y{giNMk%_n0loE+xu-yAWs`j*Qjks-qK4@xC#Ul~zZF zT5{vQKNxWc|3IBYv7)ecqD^l<3?u3U=AM*{$?j1!ibM5Tr=v}$tE2~S2l7&Sn87SJ zm{`?=hiUG2$lZA<;i(GGwCQ`;#2bNyiRzTb#wpJqO4Ikhb_XhC%9Xu*uvRO`D~@bT z-tPaIPum@=^G#}e8NrWp&=%-(P}(_0KL6=iseJ=+O~=7JZ8=N2sMGfz3b24hM!a;2 zolG2{l$|x(zu|npLE$Hg?H?%COZD<1D!(w56KB{MRMp6Dkeid6WAgI2@3XAS%43(E bEN15%_AuV^69{iI8}A>ak%^kL4xZlw(K3j- literal 0 HcmV?d00001