Просмотр исходного кода

I know main is no good and it should all be in atm i promise I will change it later

Allison Ziegler 8 лет назад
Родитель
Сommit
74e4413cda

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

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

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

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

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

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

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

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: org.opentest4j:opentest4j:1.1.0">
3
+    <CLASSES>
4
+      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.1.0/opentest4j-1.1.0.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.1.0/opentest4j-1.1.0-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.1.0/opentest4j-1.1.0-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>

+ 492
- 347
.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>org.junit.jupiter</groupId>
13
+            <artifactId>junit-jupiter-api</artifactId>
14
+            <version>RELEASE</version>
15
+            <scope>test</scope>
16
+        </dependency>
17
+    </dependencies>
10 18
 
11 19
 
12 20
 </project>

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

@@ -0,0 +1,30 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+import java.util.HashMap;
4
+import java.util.Set;
5
+
6
+public class ATM {
7
+
8
+    private HashMap<Integer, BankAccount> accounts;
9
+
10
+    public ATM() {
11
+        accounts = new HashMap<Integer, BankAccount>();
12
+    }
13
+
14
+    public void addAccount(BankAccount bankAccount) {
15
+        accounts.put(bankAccount.getAccountNumber(), bankAccount);
16
+    }
17
+
18
+    public BankAccount accessAccount(Integer accountNumber) {
19
+        BankAccount bankAccount ;
20
+        Set<Integer> accountNumbers = accounts.keySet();
21
+        for (Integer accountKey : accountNumbers) {
22
+            if (accountKey.equals(accountNumber)) {
23
+                return accounts.get(accountKey);
24
+            }
25
+        }
26
+        return null;
27
+    }
28
+
29
+
30
+}

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

@@ -3,5 +3,47 @@ package com.zipcodewilmington.bankaccountlab;
3 3
 /**
4 4
  * Created by leon on 1/10/18.
5 5
  */
6
-public class BankAccount {
6
+public abstract class BankAccount {
7
+
8
+    protected String accountHolder;
9
+    private int accountNumber;
10
+    private double accountBalance;
11
+    private short PIN;
12
+
13
+    public BankAccount(String accountHolder, int accountNumber, short PIN) {
14
+        this.accountHolder = accountHolder;
15
+        this.accountNumber = accountNumber;
16
+        this.accountBalance = 0;
17
+        this.PIN = PIN;
18
+    }
19
+
20
+    public short getPIN() {
21
+        return PIN;
22
+    }
23
+
24
+    public Integer getAccountNumber() {
25
+        return accountNumber;
26
+
27
+    }
28
+
29
+    public Double getAccountBalance() {
30
+        return accountBalance;
31
+    }
32
+
33
+    public String getAccountHolder() {
34
+        return accountHolder;
35
+    }
36
+
37
+    public void credit(double creditAmount) {
38
+        accountBalance += creditAmount;
39
+    }
40
+
41
+    public void debit(double debitAmount) {
42
+        accountBalance -= debitAmount;
43
+    }
44
+
45
+    public abstract String getAccountSummary();
46
+
47
+
48
+
7 49
 }

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

@@ -0,0 +1,24 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class BusinessAccount extends BankAccount {
4
+
5
+    private String businessName;
6
+
7
+    public BusinessAccount(String accountHolder, String businessName, int accountNumber, short PIN) {
8
+        super(accountHolder, accountNumber, PIN);
9
+        this.businessName = businessName;
10
+    }
11
+
12
+    @Override
13
+    public String getAccountSummary() {
14
+        return "Business Account: " + businessName + " | Balance: " + getAccountBalance();
15
+    }
16
+
17
+    public String getBusinessName() {
18
+        return businessName;
19
+    }
20
+
21
+    public void setBusinessName(String businessName) {
22
+        this.businessName =  businessName;
23
+    }
24
+}

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

@@ -0,0 +1,15 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class CheckingAccount extends BankAccount {
4
+
5
+    public CheckingAccount(String accountHolder, int accountNumber, short PIN) {
6
+        super (accountHolder, accountNumber, PIN);
7
+    }
8
+
9
+    @Override
10
+    public String getAccountSummary() {
11
+        return "Checking Account: " + accountHolder + " | Balance: " + getAccountBalance();
12
+    }
13
+
14
+
15
+}

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

@@ -1,7 +1,68 @@
1 1
 package com.zipcodewilmington.bankaccountlab;
2 2
 
3
+import java.util.Scanner;
4
+
3 5
 /**
4 6
  * Created by leon on 1/10/18.
5 7
  */
6 8
 public class MainApplication {
9
+
10
+    public static void main(String[] args) {
11
+        ATM atm = new ATM();
12
+        Scanner input = new Scanner(System.in);
13
+
14
+        BankAccount checkingAccount = new CheckingAccount("Arya Stark", 12345, (short)1234);
15
+        BankAccount businessAccount = new BusinessAccount("Ned Stark", "Winterfell Snowglobe Inc.", 23456, (short) 1234);
16
+        BankAccount savingsAccount = new SavingsAccount("Daenerys Targaryen", 34567, (short)1234);
17
+
18
+        checkingAccount.credit(540.00);
19
+        businessAccount.credit(150000.00);
20
+        savingsAccount.credit(10000000.00);
21
+
22
+        atm.addAccount(checkingAccount);
23
+        atm.addAccount(businessAccount);
24
+        atm.addAccount(savingsAccount);
25
+
26
+        while (true) {
27
+
28
+            System.out.println("Hello! This is an ATM");
29
+            System.out.println("What is the number of the account you'd like to access?");
30
+            int accountNumber = input.nextInt();
31
+            input.nextLine();
32
+            BankAccount account = atm.accessAccount(accountNumber);
33
+
34
+            System.out.println("What would you like to do?");
35
+            System.out.println("(you can credit, debit, or get balance)");
36
+            System.out.println("(when you're done, say exit)");
37
+
38
+            String action = input.nextLine();
39
+
40
+            if (action.equalsIgnoreCase("credit")) {
41
+                System.out.println("How much would you like to deposit? ");
42
+                double amount = input.nextDouble();
43
+                input.nextLine();
44
+                account.credit(amount);
45
+                System.out.println(account.getAccountSummary());
46
+            }
47
+            else if (action.equalsIgnoreCase("debit")) {
48
+                System.out.println("How much would you like to take out? ");
49
+                double amount = input.nextDouble();
50
+                input.nextLine();
51
+                account.debit(amount);
52
+                System.out.println(account.getAccountSummary());
53
+            }
54
+            else if (action.equalsIgnoreCase("balance")) {
55
+                System.out.println(account.getAccountSummary());
56
+            }
57
+            else if (action.equalsIgnoreCase("exit")) {
58
+                break;
59
+            }
60
+        }
61
+
62
+    }
63
+
64
+
65
+
66
+
67
+
7 68
 }

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

@@ -0,0 +1,17 @@
1
+package com.zipcodewilmington.bankaccountlab;
2
+
3
+public class SavingsAccount extends BankAccount {
4
+
5
+    public SavingsAccount(String accountHolder, int accountNumber, short PIN) {
6
+        super (accountHolder, accountNumber, PIN);
7
+    }
8
+
9
+    @Override
10
+    public String getAccountSummary() {
11
+        return "Savings Account: " + accountHolder + " | Balance: " + getAccountBalance();
12
+    }
13
+
14
+}
15
+
16
+
17
+

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

@@ -1,7 +1,101 @@
1 1
 package com.zipcodewilmington.bankaccountlab;
2 2
 
3
+import org.junit.jupiter.api.Assertions;
4
+import org.junit.jupiter.api.Test;
5
+
6
+import java.util.Arrays;
7
+
3 8
 /**
4 9
  * Created by leon on 1/10/18.
5 10
  */
6 11
 public class BankAccountTest {
12
+
13
+    @Test
14
+    public void businessAccountTest1() {
15
+        BankAccount businessAccount = new BusinessAccount("The Man In Black", "WestWorld", 1234567, (short) 1234);
16
+
17
+        String expected = "The Man In Black";
18
+        String actual = businessAccount.getAccountHolder();
19
+
20
+        Assertions.assertEquals(expected, actual);
21
+    }
22
+    @Test
23
+    public void businessAccountTest2() {
24
+        BankAccount businessAccount = new BusinessAccount("The Man In Black", "WestWorld", 1234567, (short) 1234);
25
+
26
+        String expected = "WestWorld";
27
+        String actual = ((BusinessAccount) businessAccount).getBusinessName();
28
+
29
+        Assertions.assertEquals(expected, actual);
30
+
31
+
32
+        Arrays.sort(new String[] {"a", "b", "c"});
33
+    }
34
+    @Test
35
+    public void businessAccountTest3() {
36
+        BankAccount businessAccount = new BusinessAccount("The Man In Black", "WestWorld", 1234567, (short) 1234);
37
+
38
+        String expected = "Business Account: WestWorld | Balance: 0.0";
39
+        String actual = businessAccount.getAccountSummary();
40
+
41
+        Assertions.assertEquals(expected, actual);
42
+    }
43
+    @Test
44
+    public void checkingAccountTest() {
45
+        BankAccount checkingAccount = new CheckingAccount("The Man In Black", 98765432, (short) 1234);
46
+
47
+        String expected = "Checking Account: The Man In Black | Balance: 0.0";
48
+        String actual = checkingAccount.getAccountSummary();
49
+
50
+        Assertions.assertEquals(expected, actual);
51
+    }
52
+    @Test
53
+    public void savingsAccountTest() {
54
+        BankAccount savingsAccount = new SavingsAccount("The Man In Black", 98765432, (short) 1234);
55
+
56
+        String expected = "Savings Account: The Man In Black | Balance: 0.0";
57
+        String actual = savingsAccount.getAccountSummary();
58
+
59
+        Assertions.assertEquals(expected, actual);
60
+    }
61
+    @Test
62
+    public void getAccountHolderTest() {
63
+        BankAccount checkingAccount = new CheckingAccount("The Man In Black", 98765432, (short) 1234);
64
+
65
+        String expected = "The Man In Black";
66
+        String actual = checkingAccount.getAccountHolder();
67
+
68
+        Assertions.assertEquals(expected, actual);
69
+    }
70
+    @Test
71
+    public void getAccountBalanceTest() {
72
+        BankAccount checkingAccount = new CheckingAccount("The Man In Black", 98765432, (short) 1234);
73
+
74
+        double expected = 0.0;
75
+        double actual = checkingAccount.getAccountBalance();
76
+
77
+        Assertions.assertEquals(expected, actual);
78
+    }
79
+    @Test
80
+    public void creditTest() {
81
+        BankAccount checkingAccount = new CheckingAccount("The Man In Black", 98765432, (short) 1234);
82
+        checkingAccount.credit(54.0);
83
+        double expected = 54.0;
84
+        double actual = checkingAccount.getAccountBalance();
85
+
86
+        Assertions.assertEquals(expected, actual);
87
+    }
88
+    @Test
89
+    public void debitTest() {
90
+        BankAccount checkingAccount = new CheckingAccount("The Man In Black", 98765432, (short) 1234);
91
+        checkingAccount.credit(60.0);
92
+        checkingAccount.debit(20.0);
93
+        double expected = 40.0;
94
+        double actual = checkingAccount.getAccountBalance();
95
+
96
+        Assertions.assertEquals(expected, actual);
97
+
98
+    }
99
+
100
+
7 101
 }