#22 jpsp91 (Jae Park)

Открыто
jpsp91 хочет смерджить 1 коммит(ов) из jpsp91/ZCW-Inheritance-AbstractBankAccount:master в master

+ 13
- 0
.idea/libraries/Maven__junit_junit_4_12.xml Просмотреть файл

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: junit:junit:4.12">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.12/junit-4.12-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml Просмотреть файл

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: org.hamcrest:hamcrest-core:1.3">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 1
- 0
.idea/modules.xml Просмотреть файл

@@ -3,6 +3,7 @@
3 3
   <component name="ProjectModuleManager">
4 4
     <modules>
5 5
       <module fileurl="file://$PROJECT_DIR$/bankaccountlab.iml" filepath="$PROJECT_DIR$/bankaccountlab.iml" />
6
+      <module fileurl="file://$PROJECT_DIR$/bankaccountlab.iml" filepath="$PROJECT_DIR$/bankaccountlab.iml" />
6 7
     </modules>
7 8
   </component>
8 9
 </project>

+ 604
- 362
.idea/workspace.xml
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 8
- 0
pom.xml Просмотреть файл

@@ -7,6 +7,14 @@
7 7
     <groupId>com.zipcodewilmington</groupId>
8 8
     <artifactId>bankaccountlab</artifactId>
9 9
     <version>1.0-SNAPSHOT</version>
10
+    <dependencies>
11
+        <dependency>
12
+            <groupId>junit</groupId>
13
+            <artifactId>junit</artifactId>
14
+            <version>RELEASE</version>
15
+            <scope>test</scope>
16
+        </dependency>
17
+    </dependencies>
10 18
 
11 19
 
12 20
 </project>

+ 101
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/ATM.java Просмотреть файл

@@ -0,0 +1,101 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import java.util.ArrayList;
4
+import java.util.Scanner;
5
+
6
+public class ATM {
7
+
8
+    private ArrayList<Account> accounts = new ArrayList<Account>();
9
+
10
+    private Account selectedAccount;
11
+
12
+    public void add(Account account) {
13
+        accounts.add(account);
14
+    }
15
+
16
+    public double getTotal() {
17
+        double total = 0.0;
18
+        for (Account account: this.accounts) {
19
+            total += account.getBalance();
20
+        }
21
+        return total;
22
+    }
23
+
24
+    public Account getSelectedAccount() {
25
+        return selectedAccount;
26
+    }
27
+
28
+    public void setSelectedAccount(Account selectedAccount) {
29
+        this.selectedAccount = selectedAccount;
30
+    }
31
+
32
+    public void display(){
33
+        StringBuilder sb = new StringBuilder();
34
+
35
+        int counter = 1;
36
+        for (Account account:this.accounts) {
37
+            sb.append(String.format("%5d. %15s %.2f \n", counter, account.getClass().getSimpleName(), account.getBalance()));
38
+            counter++;
39
+        }
40
+        System.out.println(sb.toString());
41
+    }
42
+
43
+    public void run(){
44
+        this.add(new CheckingAccount(2000));
45
+        this.add(new SavingsAccount(1500));
46
+        this.add(new BusinessAccount(3000));
47
+
48
+        String input;
49
+
50
+        while(true){
51
+            if(this.selectedAccount == null){
52
+                this.display();
53
+                input = getInput("Please Select a Account: ");
54
+
55
+                if(input.equalsIgnoreCase("Checkings")){
56
+                    this.selectedAccount = this.accounts.get(0);
57
+                } else if(input.equalsIgnoreCase("Savings")){
58
+                    this.selectedAccount = this.accounts.get(1);
59
+                } else if(input.equalsIgnoreCase("Business")){
60
+                    this.selectedAccount = this.accounts.get(2);
61
+                } if(input.equalsIgnoreCase("Exit")){
62
+                    System.out.println("Thank you for using my ATM");
63
+                    break;
64
+                }
65
+            } else {
66
+                System.out.println("You are selected into your " + this.selectedAccount.getClass().getSimpleName() + "\n");
67
+                System.out.println(this.selectedAccount.getBalance());
68
+                input = getInput("Please Enter Withdraw, Deposit or Check Balance");
69
+
70
+                if(input.equalsIgnoreCase("Withdraw")){
71
+
72
+                    input = getInput("Enter a amount to Withdraw");
73
+                    this.selectedAccount.withdraw(Double.parseDouble(input));
74
+
75
+                } else if(input.equalsIgnoreCase("Deposit")){
76
+
77
+                    input = getInput("Enter a amount to Deposit");
78
+                    this.selectedAccount.deposit(Double.parseDouble(input));
79
+
80
+                } else if(input.equalsIgnoreCase("Check Balance")){
81
+
82
+                    System.out.println(this.selectedAccount.getBalance());
83
+
84
+                } else if(input.equalsIgnoreCase("exit")){
85
+
86
+                    this.selectedAccount = null;
87
+                }
88
+            }
89
+
90
+        }
91
+
92
+    }
93
+
94
+
95
+    public static String getInput(String prompt) {
96
+        System.out.println(prompt);
97
+        Scanner scanner = new Scanner(System.in);
98
+        return scanner.nextLine();
99
+    }
100
+
101
+}

+ 33
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/Account.java Просмотреть файл

@@ -0,0 +1,33 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public abstract class Account {
4
+
5
+
6
+    private double balance;
7
+
8
+
9
+    public Account(double balance){
10
+        this.balance = balance;
11
+    }
12
+
13
+
14
+    public double withdraw(double amount){
15
+
16
+        this.balance = this.balance - amount;
17
+
18
+        return amount;
19
+    }
20
+
21
+
22
+    public double getBalance() {
23
+
24
+        return this.balance;
25
+    }
26
+
27
+    public double deposit(double amount) {
28
+
29
+        balance += amount;
30
+
31
+        return amount;
32
+    }
33
+}

+ 0
- 7
src/main/java/com/zipcodewilmington/bankaccountlab/BankAccount.java Просмотреть файл

@@ -1,7 +0,0 @@
1
-package com.zipcodewilmington.bankaccountlab;
2
-
3
-/**
4
- * Created by leon on 1/10/18.
5
- */
6
-public class BankAccount {
7
-}

+ 9
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/BusinessAccount.java Просмотреть файл

@@ -0,0 +1,9 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class BusinessAccount extends Account {
4
+
5
+
6
+    public BusinessAccount(double balance) {
7
+        super(balance);
8
+    }
9
+}

+ 13
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/CheckingAccount.java Просмотреть файл

@@ -0,0 +1,13 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class CheckingAccount extends Account {
4
+
5
+    public CheckingAccount(double balance){
6
+        super(balance);
7
+    }
8
+
9
+
10
+    //public double withdraw
11
+
12
+
13
+}

+ 6
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/MainApplication.java Просмотреть файл

@@ -4,4 +4,10 @@ package com.zipcodewilmington.bankaccountlab;
4 4
  * Created by leon on 1/10/18.
5 5
  */
6 6
 public class MainApplication {
7
+
8
+    public static void main(String[] args){
9
+        new ATM().run();
10
+    }
11
+
12
+
7 13
 }

+ 9
- 0
src/main/java/com/zipcodewilmington/bankaccountlab/SavingsAccount.java Просмотреть файл

@@ -0,0 +1,9 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class SavingsAccount extends Account {
4
+
5
+
6
+    public SavingsAccount(double balance) {
7
+        super(balance);
8
+    }
9
+}

+ 35
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/ATMTest.java Просмотреть файл

@@ -0,0 +1,35 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+
7
+public class ATMTest {
8
+
9
+    ATM atm;
10
+
11
+    @Before
12
+    public void setUp(){
13
+
14
+        atm = new ATM();
15
+        atm.add(new CheckingAccount(3000));
16
+        atm.add(new SavingsAccount(4000));
17
+        atm.add(new BusinessAccount(5000));
18
+    }
19
+
20
+
21
+    @Test
22
+    public void getTotal(){
23
+        //expected
24
+        double expected = 12000;
25
+
26
+        //actual
27
+        double actual = atm.getTotal();
28
+
29
+        Assert.assertEquals(expected,actual,0);
30
+    }
31
+
32
+
33
+
34
+
35
+}

+ 4
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/AccountTest.java Просмотреть файл

@@ -0,0 +1,4 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class AccountTest {
4
+}

+ 0
- 7
src/test/java/com/zipcodewilmington/bankaccountlab/BankAccountTest.java Просмотреть файл

@@ -1,7 +0,0 @@
1
-package com.zipcodewilmington.bankaccountlab;
2
-
3
-/**
4
- * Created by leon on 1/10/18.
5
- */
6
-public class BankAccountTest {
7
-}

+ 72
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/BusinessAccountTest.java Просмотреть файл

@@ -0,0 +1,72 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+
7
+public class BusinessAccountTest {
8
+
9
+    BusinessAccount ba;
10
+
11
+
12
+    @Before
13
+    public void setUp(){
14
+
15
+        ba = new BusinessAccount(5000);
16
+
17
+    }
18
+
19
+    @Test
20
+    public void withdrawTest(){
21
+        //when
22
+        ba.withdraw(4999);
23
+
24
+        //expected
25
+        double expected = 1;
26
+
27
+        //actual
28
+        double actual = ba.getBalance();
29
+
30
+        Assert.assertEquals(expected,actual,0);
31
+
32
+    }
33
+
34
+
35
+
36
+    @Test
37
+    public void deposit(){
38
+        //when
39
+        ba.deposit(1000);
40
+
41
+        //expected
42
+        double expected = 6000;
43
+
44
+        //actual
45
+        double actual = ba.getBalance();
46
+
47
+        Assert.assertEquals(expected,actual,0);
48
+    }
49
+
50
+
51
+    @Test
52
+    public void getBalance(){
53
+        //expected
54
+        double expected = 5000;
55
+
56
+        //actual
57
+        double actual = ba.getBalance();
58
+
59
+        Assert.assertEquals(expected,actual,0);
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+    }
68
+
69
+
70
+
71
+
72
+}

+ 65
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/CheckingAccountTest.java Просмотреть файл

@@ -0,0 +1,65 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+
7
+public class CheckingAccountTest {
8
+
9
+
10
+    //CheckingAccount ca = new CheckingAccount(5000);
11
+
12
+
13
+    CheckingAccount ca;
14
+
15
+    @Before
16
+    public void setUp(){
17
+        ca = new CheckingAccount(5000);
18
+    }
19
+
20
+
21
+    @Test
22
+    public void withdrawTest(){
23
+        //when
24
+        ca.withdraw(500);
25
+
26
+        //expected
27
+        double expecetd = 4500;
28
+
29
+        //actual
30
+        double actual = ca.getBalance();
31
+
32
+        Assert.assertEquals(expecetd,actual,0);
33
+    }
34
+
35
+
36
+    @Test
37
+    public void deposit(){
38
+        //when
39
+        ca.deposit(500);
40
+
41
+        //expected
42
+        double expected = 5500;
43
+
44
+        //actual
45
+        double actual = ca.getBalance();
46
+
47
+        Assert.assertEquals(expected,actual,0);
48
+    }
49
+
50
+
51
+    @Test
52
+    public void getBalance(){
53
+        //expected
54
+        double expected = 5000;
55
+
56
+        //actual
57
+        double actual = ca.getBalance();
58
+
59
+        Assert.assertEquals(expected,actual,0);
60
+    }
61
+
62
+
63
+
64
+
65
+}

+ 62
- 0
src/test/java/com/zipcodewilmington/bankaccountlab/SavingsAccountTest.java Просмотреть файл

@@ -0,0 +1,62 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import org.junit.Assert;
4
+import org.junit.Before;
5
+import org.junit.Test;
6
+
7
+public class SavingsAccountTest {
8
+
9
+    SavingsAccount sa;
10
+
11
+
12
+    @Before
13
+    public void setUp(){
14
+        sa = new SavingsAccount(5000);
15
+    }
16
+
17
+
18
+    @Test
19
+    public void withdraw(){
20
+        //when
21
+        sa.withdraw(1000);
22
+
23
+        //expected
24
+        double expected = 4000;
25
+
26
+        //actual
27
+        double actual = sa.getBalance();
28
+
29
+        Assert.assertEquals(expected,actual,0);
30
+    }
31
+
32
+
33
+
34
+    @Test
35
+    public void deposit(){
36
+        //when
37
+        sa.deposit(1000);
38
+
39
+        //expected
40
+        double expected = 6000;
41
+
42
+        //actual
43
+        double actual = sa.getBalance();
44
+
45
+        Assert.assertEquals(expected,actual,0);
46
+    }
47
+
48
+
49
+    @Test
50
+    public void getBalance(){
51
+        //expected
52
+        double expected = 5000;
53
+
54
+        //actual
55
+        double actual = sa.getBalance();
56
+
57
+        Assert.assertEquals(expected,actual,0);
58
+    }
59
+
60
+
61
+
62
+}