From 1f148d72eff00f652680a4ca525285e56f80bc5f Mon Sep 17 00:00:00 2001 From: Marc Ziegler Date: Mon, 24 Oct 2022 14:45:48 +0200 Subject: [PATCH] test --- Bank-Beispiel/.classpath | 2 +- Bank-Beispiel/src/New FC.fcp | 3396 ----------------- .../informatik/bank/domain/Aktivität.java | 39 - .../informatik/bank/domain/Bank.java | 53 +- .../informatik/bank/domain/BankTests.java | 112 - .../informatik/bank/domain/Datenbank.java | 32 - .../informatik/bank/domain/Girokonto.java | 46 +- .../informatik/bank/domain/Konto.java | 87 +- .../informatik/bank/domain/KontoTest.java | 93 +- .../informatik/bank/domain/Kontoauszug.java | 31 - .../informatik/bank/domain/Kontobewegung.java | 28 + .../informatik/bank/facade/Banksystem.java | 98 +- .../bank/facade/BanksystemTest.java | 88 - .../informatik/bank/facade/SystemTest.java | 19 + .../bank/infrastructure/Persistenz.java | 30 + .../de/hs_mannheim/informatik/bank/ui/UI.java | 213 +- 16 files changed, 347 insertions(+), 4020 deletions(-) delete mode 100644 Bank-Beispiel/src/New FC.fcp delete mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Aktivität.java delete mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTests.java delete mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java delete mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontoauszug.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontobewegung.java delete mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java create mode 100644 Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java diff --git a/Bank-Beispiel/.classpath b/Bank-Beispiel/.classpath index aa3d84a..9e73c62 100644 --- a/Bank-Beispiel/.classpath +++ b/Bank-Beispiel/.classpath @@ -6,6 +6,6 @@ - + diff --git a/Bank-Beispiel/src/New FC.fcp b/Bank-Beispiel/src/New FC.fcp deleted file mode 100644 index 403409a..0000000 --- a/Bank-Beispiel/src/New FC.fcp +++ /dev/null @@ -1,3396 +0,0 @@ - - - - - - Seite 1 - Portrait - A4 - None - 0 - 0 - - 0 - 0 - - 0 - - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - 0 - 0 - - 2,5 - uml - - - - - - 5d0581b78aed4ee8b0bf6527c2681a23 - - ActivityStart - Start - None - Default - false - false - false - - 307 - 97 - - 30.1204833984375 - 30.1204833984375 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -35 - -135 - - - - - - - Solid - 1 - 0 - - - b1b6ecd45a654d87962e1417bc12e543 - - VerticalBar - Start - None - Default - false - false - false - - 412 - 122 - - 430.1204833984375 - 9.638554573059082 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 60 - -50 - - - - - - - Solid - 1 - 0 - - - 4e970de88c214cf0b3635042b9e226fb - - Activity - Start - None - Default - false - false - false - - 467 - 192 - - 69.8795166015625 - 90.3614501953125 - 0 - erstellen der Klasse beim erstellen des Kontos - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 155 - -100 - - - - - - - Solid - 1 - 0 - - - 1c6ab24e7855452dbfd83e71bee81fdf - - Activity - Start - None - Default - false - false - false - - 277 - 302 - - 69.8795166015625 - 90.3614501953125 - 0 - Warten bis zur nächsten Aktivität auf dem Konto - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -35 - 10 - - - - - - - Solid - 1 - 0 - - - 607ea9ee4a994d45bafe757014698907 - - Activity - Start - None - Default - false - false - false - - 472 - 892 - - 90.3614501953125 - 90.3614501953125 - 0 - Ãœbergebene Daten wie das Datum in String umwandeln - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 160 - 450 - - - - - - - Solid - 1 - 0 - - - a838e00032384ba2ab7988a1b0c7240e - - Activity - Start - None - Default - false - false - false - - 277 - 712 - - 49.397590637207031 - 90.3614501953125 - 0 - neue Aktivität im Konto - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -35 - 270 - - - - - - - Solid - 1 - 0 - - - 6ef27b03d235471db3d6ff4e8d96a5f2 - - ActivityDecision - Start - None - Default - false - false - false - - 487 - 712 - - 49.397590637207031 - 60.240966796875 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 160 - 120 - - - - - - - Solid - 1 - 0 - - - 37eedc119a2c4e998b2254b25f4e7f87 - - ActivityDecision - Start - None - Default - false - false - false - - 487 - 832 - - 49.397590637207031 - 60.240966796875 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 160 - 240 - - - - - - - Solid - 1 - 0 - - - 149f2bd03754449db0564cf5d54baa71 - - VerticalBar - Start - None - Default - false - false - false - - 412 - 552 - - 520.48193359375 - 9.638554573059082 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 60 - -60 - - - - - - - Solid - 1 - 0 - - - b49af04e608549c89ac919c9d3e57c01 - - Activity - Start - None - Default - false - false - false - - 472 - 1027 - - 49.397590637207031 - 90.3614501953125 - 0 - Daten in die ArrayList einfügen - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 160 - 365 - - - - - - - Solid - 1 - 0 - - - a32ed2170b0d45968a4723b3a4f7e540 - - ActivityDecision - Start - None - Default - false - false - false - - 292 - 507 - - 49.397590637207031 - 60.240966796875 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -35 - 105 - - - - - - - Solid - 1 - 0 - - - ffe8f01d912b4433830bce278888e1ee - - Activity - Start - None - Default - false - false - false - - 467 - 602 - - 49.397590637207031 - 90.3614501953125 - 0 - Augabe der Liste - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 155 - 200 - - - - - - - Solid - 1 - 0 - - - 4fb53b4ee2304dc595ee36f22f68e83f - - Activity - Start - None - Default - false - false - false - - 622 - 602 - - 49.397590637207031 - 90.3614501953125 - 0 - eventuelles Löschen der Liste - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 310 - 50 - - - - - - - Solid - 1 - 0 - - - 8e72f22161d94eeea283c0df0c41e557 - - ActivityDecision - Start - None - Default - false - false - false - - 482 - 507 - - 49.397590637207031 - 60.240966796875 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 155 - 25 - - - - - - - Solid - 1 - 0 - - - d9ae231714074ef49b2560269b4e7405 - - Activity - Start - None - Default - false - false - false - - 467 - 412 - - 49.397590637207031 - 90.3614501953125 - 0 - Ausgabe abbrechen - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 155 - -70 - - - - - - - Solid - 1 - 0 - - - 610af0ac1b64468eb7db7c08b4503a4d - - ActivityDecision - Start - None - Default - false - false - false - - 482 - 312 - - 49.397590637207031 - 60.240966796875 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 195 - -240 - - - - - - - Solid - 1 - 0 - - - - - - - - 0a3c5d25617741b49364bce3f0477dba - 5d0581b78aed4ee8b0bf6527c2681a23 - 4e970de88c214cf0b3635042b9e226fb - - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 329 - 136.57830810546875 - - - 329 - 146.57830810546875 - - - 329 - 146.57830810546875 - - - 329 - 166.78915405273438 - - - 519 - 166.78915405273438 - - - 519 - 187 - - - 519 - 187 - - - 519 - 197 - - - false - 0 - 0 - 0 - 0 - 1 - - - d20223511e3946608b3e194faf04afdc - 4e970de88c214cf0b3635042b9e226fb - 1c6ab24e7855452dbfd83e71bee81fdf - - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 519 - 271.33734130859375 - - - 519 - 281.33734130859375 - - - 519 - 281.33734130859375 - - - 519 - 289.16867065429688 - - - 329 - 289.16867065429688 - - - 329 - 297 - - - 329 - 297 - - - 329 - 307 - - - false - 0 - 0 - 0 - 0 - 1 - - - 7f19a4c81d424603bb6ffebd4ded84b8 - 1c6ab24e7855452dbfd83e71bee81fdf - a32ed2170b0d45968a4723b3a4f7e540 - - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 329 - 381.33734130859375 - - - 329 - 391.33734130859375 - - - 329 - 391.33734130859375 - - - 329 - 446.66867065429688 - - - 329 - 446.66867065429688 - - - 329 - 502 - - - 329 - 502 - - - 329 - 512 - - - false - 0 - 0 - 0 - 0 - 1 - - - 96fed068f6864da9b7d5f5efa7671109 - 607ea9ee4a994d45bafe757014698907 - b49af04e608549c89ac919c9d3e57c01 - - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 524 - 991.81927490234375 - - - 524 - 1001.8192749023438 - - - 524 - 1001.8192749023438 - - - 524 - 1011.90966796875 - - - 524 - 1011.90966796875 - - - 524 - 1022 - - - 524 - 1022 - - - 524 - 1032 - - - false - 0 - 0 - 0 - 0 - 1 - - - 74108319092343229dde6ae748303cea - a838e00032384ba2ab7988a1b0c7240e - 6ef27b03d235471db3d6ff4e8d96a5f2 - Daten der aktion - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 376.81927490234375 - 744 - - - 386.81927490234375 - 744 - - - 386.81927490234375 - 744 - - - 434.40963745117188 - 744 - - - 434.40963745117188 - 744 - - - 482 - 744 - - - 482 - 744 - - - 492 - 744 - - - false - 0 - 0 - 0 - 0 - 1 - - - 1c87411297f44403b5374fe7d2264b2f - 6ef27b03d235471db3d6ff4e8d96a5f2 - 37eedc119a2c4e998b2254b25f4e7f87 - Abheben - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 524 - 770.85540771484375 - - - 524 - 780.85540771484375 - - - 524 - 780.85540771484375 - - - 524 - 803.927734375 - - - 524 - 803.927734375 - - - 524 - 827 - - - 524 - 827 - - - 524 - 837 - - - false - 0 - 0 - 0 - 0 - 1 - - - 1fcdc0d0e08244338a11ae5d57be124e - 6ef27b03d235471db3d6ff4e8d96a5f2 - 37eedc119a2c4e998b2254b25f4e7f87 - Ãœberweißung/einzug - LeftRight - Right - Right - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 556.69879150390625 - 744 - - - 566.69879150390625 - 744 - - - 566.69879150390625 - 744 - - - 586.69879150390625 - 744 - - - 586.69879150390625 - 864 - - - 566.69879150390625 - 864 - - - 566.69879150390625 - 864 - - - 556.69879150390625 - 864 - - - false - 0 - 0 - 0 - 0 - 1 - - - 3a1636a08d2d490b994c871997b5f8d2 - 37eedc119a2c4e998b2254b25f4e7f87 - 607ea9ee4a994d45bafe757014698907 - - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 524 - 890.85540771484375 - - - 524 - 900.85540771484375 - - - 524 - 900.85540771484375 - - - 524 - 893.927734375 - - - 524 - 893.927734375 - - - 524 - 887 - - - 524 - 887 - - - 524 - 897 - - - false - 0 - 0 - 0 - 0 - 1 - - - 5f7f0240d3ce4fce8be8c96fa29e45c7 - b49af04e608549c89ac919c9d3e57c01 - 1c6ab24e7855452dbfd83e71bee81fdf - - LeftRight - Left - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 477 - 1059 - - - 467 - 1059 - - - 467 - 1059 - - - 252 - 1059 - - - 252 - 344 - - - 272 - 344 - - - 272 - 344 - - - 282 - 344 - - - false - 0 - 0 - 0 - 0 - 1 - - - be56c327a428475d8ec0f08fe3762004 - a32ed2170b0d45968a4723b3a4f7e540 - a838e00032384ba2ab7988a1b0c7240e - neue Aktivität festhalten - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 329 - 565.85540771484375 - - - 329 - 575.85540771484375 - - - 329 - 575.85540771484375 - - - 329 - 641.427734375 - - - 329 - 641.427734375 - - - 329 - 707 - - - 329 - 707 - - - 329 - 717 - - - false - 0 - 0 - 0 - 0 - 1 - - - 7c260adc1f304aebadd3f3d8b384f5e7 - a32ed2170b0d45968a4723b3a4f7e540 - 8e72f22161d94eeea283c0df0c41e557 - Kontoauszugdrucken - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 361.69879150390625 - 539 - - - 371.69879150390625 - 539 - - - 371.69879150390625 - 539 - - - 424.34939575195312 - 539 - - - 424.34939575195312 - 539 - - - 477 - 539 - - - 477 - 539 - - - 487 - 539 - - - false - 0 - 0 - 0 - 0 - 1 - - - 77e1677a2813444a8af0d88937495525 - ffe8f01d912b4433830bce278888e1ee - 4fb53b4ee2304dc595ee36f22f68e83f - - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 566.81927490234375 - 634 - - - 576.81927490234375 - 634 - - - 576.81927490234375 - 634 - - - 596.90966796875 - 634 - - - 596.90966796875 - 634 - - - 617 - 634 - - - 617 - 634 - - - 627 - 634 - - - false - 0 - 0 - 0 - 0 - 1 - - - f562f66f576141e6b0777bd7e1772993 - 4fb53b4ee2304dc595ee36f22f68e83f - 610af0ac1b64468eb7db7c08b4503a4d - - LeftRight - Top - Right - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 674 - 607 - - - 674 - 597 - - - 674 - 597 - - - 674 - 344 - - - 561.69879150390625 - 344 - - - 561.69879150390625 - 344 - - - 551.69879150390625 - 344 - - - false - 0 - 0 - 0 - 0 - 1 - - - 3c5fc781aa6a4985998521d1cbe138c2 - 8e72f22161d94eeea283c0df0c41e557 - d9ae231714074ef49b2560269b4e7405 - keine neuen Einträge - LeftRight - Top - Bottom - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 519 - 512 - - - 519 - 502 - - - 519 - 502 - - - 519 - 491.42770385742188 - - - 519 - 491.42770385742188 - - - 519 - 480.85540771484375 - - - 519 - 480.85540771484375 - - - 519 - 470.85540771484375 - - - false - 0 - 0 - 0 - 0 - 1 - - - 1b566d0dac84453aa0130fbc84ae8e65 - 8e72f22161d94eeea283c0df0c41e557 - ffe8f01d912b4433830bce278888e1ee - neue Einträge - LeftRight - Bottom - Top - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 519 - 565.85540771484375 - - - 519 - 575.85540771484375 - - - 519 - 575.85540771484375 - - - 519 - 586.427734375 - - - 519 - 586.427734375 - - - 519 - 597 - - - 519 - 597 - - - 519 - 607 - - - false - 0 - 0 - 0 - 0 - 1 - - - 4b1046a6d0f64325b20d3bdd67227aed - d9ae231714074ef49b2560269b4e7405 - 610af0ac1b64468eb7db7c08b4503a4d - - LeftRight - Top - Bottom - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 519 - 417 - - - 519 - 407 - - - 519 - 407 - - - 519 - 393.92770385742188 - - - 519 - 393.92770385742188 - - - 519 - 380.85540771484375 - - - 519 - 380.85540771484375 - - - 519 - 370.85540771484375 - - - false - 0 - 0 - 0 - 0 - 1 - - - 694b03e66529458eaaf6132cdd369a8d - 610af0ac1b64468eb7db7c08b4503a4d - 1c6ab24e7855452dbfd83e71bee81fdf - - LeftRight - Left - Right - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 487 - 344 - - - 477 - 344 - - - 477 - 344 - - - 431.90963745117188 - 344 - - - 431.90963745117188 - 344 - - - 386.81927490234375 - 344 - - - 386.81927490234375 - 344 - - - 376.81927490234375 - 344 - - - false - 0 - 0 - 0 - 0 - 1 - - - - - - Seite 2 - Portrait - A4 - None - 0 - 0 - - 0 - 0 - - 0 - - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - 0 - 0 - - 2,5 - uml - - - - - - f291b0914f8b48f88a571fa1a172859a - - ClassWizard - Start - None - Default - false - false - false - - 257 - 172 - - 279.51806640625 - 200 - 0 - Kontoauszug - 12.5 - - 400 - - Left - Top - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 0 - 0 - - - - - - - Attribute - private - ArrayList<String> - Historie - classifier - - - - - 306ee94e91784ce1b38c81135bac5d20 - Operation - public - String - Auszug - instance - - - 51ede6289333470ab4f85732e1143800 - Operation - public - void - HinzufügenAuszahlen - instance - - - 225cc3ccd1334b30ace2d3bd281d0a41 - Operation - public - void - HinzufügenÃœberweißung - instance - - - 373b51aac5fb4ed2a50f3dd77418345d - Operation - public - void - delete - instance - - - 14f85269f17d45ccac3c772f5098bcdc - Operation - public - String - toString - instance - - - 225cc3ccd1334b30ace2d3bd281d0a41 - Parameter - in - String - Empfänger - - - 225cc3ccd1334b30ace2d3bd281d0a41 - Parameter - in - String - Datum - - - 225cc3ccd1334b30ace2d3bd281d0a41 - Parameter - in - double - Menge - - - 225cc3ccd1334b30ace2d3bd281d0a41 - Parameter - in - int - IBAN_Empfänger - - - 51ede6289333470ab4f85732e1143800 - Parameter - in - String - Datum - - - 51ede6289333470ab4f85732e1143800 - Parameter - in - double - Menge - - - 51ede6289333470ab4f85732e1143800 - Parameter - in - String - Ort - - - 14f85269f17d45ccac3c772f5098bcdc - Parameter - in - var - Eingabe - - - Solid - 1 - 0 - - - bea34833ed394b3c9302e5841fb58c3b - - ClassWizard - Start - None - Default - false - false - false - - 537 - 587 - - 189.15663146972656 - 200 - 0 - Aktivität - 12.5 - - 400 - - Left - Top - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 280 - -25 - - - - - - - Attribute - private - String - Datum - instance - - - Attribute - private - String - Ort - instance - - - Attribute - private - int - Empfänger - instance - - - Attribute - private - double - Menge - instance - - - - - 60fb8668d85048e780795e7cd93c7b65 - Operation - public - String - Ausgabe - instance - - - b7cfbd4a5c5647efafb74cbbfab1da65 - Operation - public - String - toString - instance - - - 481db8fa1d074c938d5fc52e60d2a2ef - Operation - public - Konstruktor - Aktivität - instance - - - 481db8fa1d074c938d5fc52e60d2a2ef - Parameter - in - String - Ort - - - 481db8fa1d074c938d5fc52e60d2a2ef - Parameter - in - String - Datum - - - 481db8fa1d074c938d5fc52e60d2a2ef - Parameter - in - int - Empfänger - - - 481db8fa1d074c938d5fc52e60d2a2ef - Parameter - in - double - Menge - - - Solid - 1 - 0 - - - 672224f278704a4381e48874f64f1725 - - ClassWizard - Start - None - Default - false - false - false - - 172 - 607 - - 149.39759826660156 - 200 - 0 - Kontoauszug - 12.5 - - 400 - - Left - Top - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -85 - 35 - - - - - - - Attribute - private - ArrayList<Aktivität> - Historie - instance - - - - - e67b2d645dd64b2886b0dd18bfbc79fd - Operation - public - void - delete - instance - - - 249325f67a0045329ebe4978282c9538 - Operation - public - void - Hinzufügen - instance - - - b91e66616c9b49e18b061cec6f871512 - Operation - public - String - Auszug - instance - - - Solid - 1 - 0 - - - - - - - - 4631c244b7214707ae3893c33baa169e - 672224f278704a4381e48874f64f1725 - bea34833ed394b3c9302e5841fb58c3b - 1* - Association - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 381.45782470703125 - 709 - - - 391.45782470703125 - 709 - - - 391.45782470703125 - 709 - - - 461.72891235351562 - 709 - - - 461.72891235351562 - 709 - - - 532 - 709 - - - 532 - 709 - - - 542 - 709 - - - false - 0 - 0 - 0 - 0 - 1 - - - - - - Seite 3 - Portrait - A4 - None - 0 - 0 - - 0 - 0 - - 0 - - 0 - - - 0 - 0 - 0 - 0 - - - 0 - 0 - 0 - 0 - - 2,5 - uml - - - - - - d0e537c84d234a9f90d1d8e67ddbf772 - - UmlSequenceObject - Start - None - Default - false - false - false - - 92 - 37 - - 49.397590637207031 - 79.518074035644531 - 0 - Benutzer - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 139 - 495.85540771484375 - - - - - - - Solid - 1 - 0 - - - 13aa8de27ce44cab83365f3ca2f5c367 - - UmlSequenceObject - Start - None - Default - false - false - false - - 262 - 87 - - 49.397590637207031 - 79.518074035644531 - 0 - Klasse Kontoauszug - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 309 - 445.85540771484375 - - - - - - - Solid - 1 - 0 - - - a27158f39b854c62b5e6110c0d5dace7 - - UmlSequenceObject - Start - None - Default - false - false - false - - 422 - 132 - - 49.397590637207031 - 79.518074035644531 - 0 - klasse Aktivität - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 469 - 430.85540771484375 - - - - - - - Solid - 1 - 0 - - - 5c182728429a45fb83b5769df4d6b599 - - UmlActivation - Start - None - Default - false - false - false - - 292 - 172 - - 130.1204833984375 - 20.4819278717041 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -55 - -50 - - - - - - - Solid - 1 - 0 - - - ddd3bc6f429440deaae5fc26418736c5 - - UmlActivation - Start - None - Default - false - false - false - - 122 - 147 - - 290.3614501953125 - 20.4819278717041 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - -225 - -75 - - - - - - - Solid - 1 - 0 - - - 747c149e0b294a9d806e98de4399660d - - UmlActivation - Start - None - Default - false - false - false - - 452 - 202 - - 49.397590637207031 - 20.4819278717041 - 0 - - 12.5 - - 400 - - Center - Center - - 255 - 255 - 255 - 255 - - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - - 105 - -90 - - - - - - - Solid - 1 - 0 - - - - - - - - 951911c5ef1f41b9ba3e3adc53bf3373 - 5c182728429a45fb83b5769df4d6b599 - 747c149e0b294a9d806e98de4399660d - hinzufügen() - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 321.93975830078125 - 209 - - - 331.93975830078125 - 209 - - - 331.93975830078125 - 209 - - - 389.46987915039062 - 209 - - - 389.46987915039062 - 209 - - - 447 - 209 - - - 447 - 209 - - - 457 - 209 - - - true - 0 - -35 - 0 - -25 - 1 - - - c6640d786f794031a1beb04316ea5dd9 - 5c182728429a45fb83b5769df4d6b599 - 747c149e0b294a9d806e98de4399660d - delete - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 321.93975830078125 - 259 - - - 331.93975830078125 - 259 - - - 331.93975830078125 - 259 - - - 389.46987915039062 - 259 - - - 389.46987915039062 - 259 - - - 447 - 259 - - - 447 - 259 - - - 457 - 259 - - - true - 0 - 15 - 0 - 25 - 1 - - - 52141e978c9b42b595c9a5a166e6070c - 5c182728429a45fb83b5769df4d6b599 - ddd3bc6f429440deaae5fc26418736c5 - Ausgabe():String - LeftRight - Left - Right - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 297 - 239 - - - 287 - 239 - - - 287 - 239 - - - 224.46987915039063 - 239 - - - 224.46987915039063 - 239 - - - 161.93975830078125 - 239 - - - 161.93975830078125 - 239 - - - 151.93975830078125 - 239 - - - true - 0 - -5 - 0 - -60 - 1 - - - 217e0a84ec0a4949ab4d34c6fd3ceb66 - ddd3bc6f429440deaae5fc26418736c5 - 5c182728429a45fb83b5769df4d6b599 - erstellen eines neuen kontos - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 151.93975830078125 - 179 - - - 161.93975830078125 - 179 - - - 161.93975830078125 - 179 - - - 199.46987915039063 - 179 - - - 199.46987915039063 - 179 - - - 237 - 179 - - - 237 - 179 - - - 297 - 179 - - - true - 0 - -120 - 0 - -65 - 1 - - - 18ccf5617f644dfd925b1c0a0a7db8e2 - ddd3bc6f429440deaae5fc26418736c5 - 5c182728429a45fb83b5769df4d6b599 - delete():void - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 151.93975830078125 - 274 - - - 161.93975830078125 - 274 - - - 161.93975830078125 - 274 - - - 224.46987915039063 - 274 - - - 224.46987915039063 - 274 - - - 287 - 274 - - - 287 - 274 - - - 297 - 274 - - - true - 0 - -25 - 0 - 30 - 1 - - - 58b8bdeeeeee4e5e823167cba046cfd1 - ddd3bc6f429440deaae5fc26418736c5 - 5c182728429a45fb83b5769df4d6b599 - hinzufügen()void - LeftRight - Right - Left - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 151.93975830078125 - 199 - - - 161.93975830078125 - 199 - - - 161.93975830078125 - 199 - - - 224.46987915039063 - 199 - - - 224.46987915039063 - 199 - - - 287 - 199 - - - 287 - 199 - - - 297 - 199 - - - true - 0 - -100 - 0 - -45 - 1 - - - a09de176aedf4cdf88e454f1cfea734b - 747c149e0b294a9d806e98de4399660d - 5c182728429a45fb83b5769df4d6b599 - Ausgeben():String - LeftRight - Left - Right - - 255 - 0 - 0 - 0 - - - 255 - 0 - 0 - 0 - - 12.5 - - 400 - - - - - - 457 - 229 - - - 447 - 229 - - - 447 - 229 - - - 389.46987915039062 - 229 - - - 389.46987915039062 - 229 - - - 331.93975830078125 - 229 - - - 331.93975830078125 - 229 - - - 321.93975830078125 - 229 - - - true - 0 - -5 - 0 - -15 - 1 - - - - - - 2.5 - \ No newline at end of file diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Aktivität.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Aktivität.java deleted file mode 100644 index 685fa7b..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Aktivität.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.hs_mannheim.informatik.bank.domain; - -import java.io.Serializable; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.GregorianCalendar; - -public class Aktivität implements Serializable{ - private String Datum; - private String Ort; - private int Empfänger; - private double Menge; - - Aktivität(double Menge, String Ort){ - Calendar calendar = new GregorianCalendar(); - this.Datum=""+calendar.get(calendar.DAY_OF_MONTH)+"."+(calendar.get(calendar.MONTH)+1)+"."+calendar.get(calendar.YEAR); - this.Menge=Menge; - this.Ort=Ort; - } - Aktivität(double Menge, int Empfänger){ - Calendar calendar = new GregorianCalendar(); - this.Datum=""+calendar.get(calendar.DAY_OF_MONTH)+"."+(calendar.get(calendar.MONTH)+1)+"."+calendar.get(calendar.YEAR); - this.Menge=Menge; - this.Empfänger=Empfänger; - } - - public String Ausgabe() { - if(Ort==null) - if(Menge>0) - return "Am "+Datum+" wurden von Nummer: "+Empfänger+Menge+" überwiesen."; - else - return "Am "+Datum+" wurde an Nummer: "+Empfänger+Menge+" überwiesen."; - else - if(Menge>0) - return "Am "+Datum+" wurden "+ Menge+" Euro in "+Ort+" eingezahlt."; - else - return "Am "+Datum+" wurden "+ Menge+" Euro in "+Ort+" abgehoben."; - } -} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java index 7fb33d5..27aeb58 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Bank.java @@ -1,20 +1,30 @@ package de.hs_mannheim.informatik.bank.domain; +import java.io.Serializable; import java.util.Collection; import java.util.HashMap; -import java.io.Serializable; -public class Bank implements Serializable{ +public class Bank implements Serializable { private String name; private HashMap konten = new HashMap<>(); - private HashMap Girokonten = new HashMap<>(); + private int kontozähler; public Bank(String name) { this.name = name; + this.kontozähler = -1; } - // instanceof Girokonto zum überprüfen der klassen zugehörigkeit - public void addKonto(Konto k) { + + public int addKonto(String name, int auswahl) { + Konto k; + + if (auswahl == 1) + k = new Konto(name, ++kontozähler); + else + k = new Girokonto(name, ++kontozähler); + konten.put(k.getKontonummer(), k); + + return k.getKontonummer(); } public String getName() { @@ -23,37 +33,10 @@ public class Bank implements Serializable{ public Collection getKontenliste() { return konten.values(); - } - public long getKontostand(int Kontonummer) { - return konten.get(Kontonummer).getStand(); - } - - public long GeldEinzahlen(int Kontonummer,long Betrag) { - return konten.get(Kontonummer).Einzahlen(Betrag); - - } - - public void kontoAuszugerstellen(int Kontonummer) { - konten.get(Kontonummer).kontoAuszugerstellen(); - } - - public long kontoÜberweisen(int Empfänger,int inhaber, long Menge) { - - if(konten.get(inhaber) instanceof Girokonto) { - long stand=konten.get(inhaber).neueÜberweisung(Menge, Empfänger); - if(stand >=0) { - konten.get(Empfänger).Einzahlen(Menge); - return konten.get(inhaber).getStand();} - else - return -1; - } - return -3; - } - public long abheben(int kontonummer,long Menge) { - return konten.get(kontonummer).abbuchen(Menge); - + + public Konto findeKonto(int kontonummer) { + return konten.get(kontonummer); } } - diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTests.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTests.java deleted file mode 100644 index 2343517..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/BankTests.java +++ /dev/null @@ -1,112 +0,0 @@ -package de.hs_mannheim.informatik.bank.domain; - -import static org.junit.Assert.*; - -import org.junit.Before; -import org.junit.Test; - -public class BankTests { - Bank bank; - Girokonto GK1=new Girokonto("Marc"); - Girokonto GK2=new Girokonto("Marc1"); - Girokonto GK3=new Girokonto("Marc2"); - int a=GK1.getKontonummer(); - int b=GK2.getKontonummer(); - int c=GK3.getKontonummer(); - - Konto k1=new Konto("Marc3"); - Konto k2=new Konto("Marc4"); - Konto k3=new Konto("Marc5"); - int e=k1.getKontonummer(); - int f=k2.getKontonummer(); - int g=k3.getKontonummer(); - @Before - public void Setup() { - bank=new Bank("Bank"); - bank.addKonto(GK1); - bank.addKonto(GK2); - bank.addKonto(GK3); - bank.addKonto(k3); - bank.addKonto(k2); - bank.addKonto(k1); - } - @Test - public void KontoEinzahlen() { - - assertEquals(bank.GeldEinzahlen(e, 654),654); - assertEquals(bank.GeldEinzahlen(f, 65),65); - assertEquals(bank.GeldEinzahlen(g, 6),6); - - } - @Test - public void GiroEinzahlen() { - - - assertEquals(bank.GeldEinzahlen(a, 654),654); - assertEquals(bank.GeldEinzahlen(b, 65),65); - assertEquals(bank.GeldEinzahlen(c, 6),6); - } - - @Test - public void abhebenTest() { - //einzahlen der Test Mengen - bank.GeldEinzahlen(a, 22); - bank.GeldEinzahlen(c, 4444); - bank.GeldEinzahlen(e, 6666); - //Testen abheben Methode mit zu geringem stand - assertEquals(bank.abheben(a, 1111),22); - //testen mit normalem konto - assertEquals(bank.abheben(c, 2222),2222); - //testen mit Giro - assertEquals(bank.abheben(e, 3333),3333); - } - @Test - public void kontoStandTest() { - //Testen der getKontostand funktion ohne eingabe - assertEquals(bank.getKontostand(a),0); - assertEquals(bank.getKontostand(b),0); - assertEquals(bank.getKontostand(c),0); - assertEquals(bank.getKontostand(e),0); - assertEquals(bank.getKontostand(f),0); - assertEquals(bank.getKontostand(g),0); - //Testen der getKontostand funktion mit eingabe - bank.GeldEinzahlen(a, 111111); - bank.GeldEinzahlen(c, 11111); - bank.GeldEinzahlen(e, 1111); - bank.GeldEinzahlen(b, 111); - bank.GeldEinzahlen(f, 11); - bank.GeldEinzahlen(g, 1); - assertEquals(bank.getKontostand(a),111111); - assertEquals(bank.getKontostand(b),111); - assertEquals(bank.getKontostand(c),11111); - assertEquals(bank.getKontostand(e),1111); - assertEquals(bank.getKontostand(f),11); - assertEquals(bank.getKontostand(g),1); - } - - - - - @Test - public void überweißenTesten() { - - - //einzahlen des Testguthabens - bank.GeldEinzahlen(b, 3333); - bank.GeldEinzahlen(c, 3333); - bank.GeldEinzahlen(e, 6666); - - //testen von Giro auf Giro - assertEquals(bank.kontoÜberweisen(a,b,3333 ),bank.getKontostand(b)); - //von Giro auf nicht Giro - assertEquals(bank.kontoÜberweisen(e,c,3333 ),bank.getKontostand(c)); - //nicht genug Guthaben/von Giro auf nicht Giro - assertEquals(bank.kontoÜberweisen(e,c,3335 ),-1); - //nicht Giro auf nicht Giro - assertEquals(bank.kontoÜberweisen(f,g,3333 ),-3); - } - @Test - public void getNameTest() { - assertEquals(bank.getName(),"Bank"); - } -} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java deleted file mode 100644 index ebb35d0..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Datenbank.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.hs_mannheim.informatik.bank.domain; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.ObjectOutputStream; -import java.util.HashMap; -import java.io.IOException; -import java.io.ObjectInputStream; - -import de.hs_mannheim.informatik.bank.facade.Banksystem; - -public class Datenbank { - File fp=new File("object.ser"); - - - public void Speichern(Bank bank) throws Exception{ - - ObjectOutputStream file=new ObjectOutputStream(new FileOutputStream(fp)); - file.writeObject(bank); - - } - public Bank Laden() throws Exception{ - if(fp.exists()) { - ObjectInputStream file=new ObjectInputStream(new FileInputStream(fp)); - Bank object=(Bank)file.readObject(); - return object; - } - return null; - } -} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java index 9a34e60..e6c5bd1 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Girokonto.java @@ -1,19 +1,27 @@ -package de.hs_mannheim.informatik.bank.domain; - -import java.io.Serializable; - -public class Girokonto extends Konto implements Serializable { - - public Girokonto(String inhaber) { - super(inhaber); - } - @Override - public long neueÜberweisung(long Menge,int Empfänger) { - if(Menge<=super.getStand()) { - super.Überweisung(Menge, Empfänger); - return super.getStand(); - } - System.out.println("Nicht genug Geld vorhanden"); - return -1; - } -} +package de.hs_mannheim.informatik.bank.domain; + +import java.io.Serializable; + +public class Girokonto extends Konto implements Serializable { + + public Girokonto(String inhaber, int kontozähler) { + super(inhaber, kontozähler); + } + + public boolean Überweise(Girokonto ziel, long betrag, String zweck) { + if (super.getKontostand() - betrag >= 0) { + this.auszahlen(betrag, zweck, "Ãœberweisungsausgang", super.getInhaber()); + ziel.einzahlen(betrag, zweck, "Ãœberweisungseingang", super.getInhaber()); + + return true; + } + + return false; + } + + @Override + public String toString() { + return "Giro-" + super.toString(); + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java index 57bf62f..31220e1 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Konto.java @@ -1,67 +1,66 @@ package de.hs_mannheim.informatik.bank.domain; import java.io.Serializable; +import java.util.ArrayList; -public class Konto implements Serializable{ - private static int kontozähler = 0; - +public class Konto implements Serializable { private int nummer; private long stand = 0; private String inhaber; - private Kontoauszug KA=new Kontoauszug(); - public Konto(String inhaber) { - nummer = 1000 + kontozähler++; + private ArrayList kontobewegungen; + + public Konto(String inhaber, int kontozähler) { + nummer = 1000 + kontozähler; this.inhaber = inhaber; - Kontoauszug KA=new Kontoauszug(); + + this.kontobewegungen = new ArrayList<>(); } - + public int getKontonummer() { return nummer; } - public String getInhaber() { - return inhaber; - } + @Override public String toString() { return "Konto [nummer=" + nummer + ", inhaber=" + inhaber + "]"; } - public long Einzahlen(long Betrag) { - KA.Hinzufügen(Betrag, "Mannheim"); - - if(Betrag>=0) - this.stand+=Betrag; - return getStand(); + + public String getInhaber() { + return inhaber; } - public long Einzahlen(long Betrag,int Sender) { - KA.Hinzufügen(Betrag, Sender); - - if(Betrag>=0) - this.stand+=Betrag; - return getStand(); - } - - - public long getStand() { - return this.stand; - } - - public void kontoAuszugerstellen() { - KA.Auszug(); - } - public long abbuchen(long Menge) { - if(Menge<=stand) { - KA.Hinzufügen(Menge, "Mannheim"); - stand-=Menge; - return stand; - } - System.out.println("zu hohe Menge, bitte begeben Sie sich zu Schalter dafür"); + + public long getKontostand() { return stand; } - public void Überweisung(long Menge,int Empfänger) { - KA.Hinzufügen(Menge, Empfänger); + + public void einzahlen(long betrag, String zweck, String art, String auftraggeber) { + stand += betrag; + + kontobewegungen.add(new Kontobewegung(betrag, zweck, art, auftraggeber)); } - public long neueÜberweisung(long Menge, int Empfänger) { - return 0; + + public boolean auszahlen(long betrag, String zweck, String art, String auftraggeber) { + if (stand - betrag >= 0) { + stand -= betrag; + + kontobewegungen.add(new Kontobewegung(betrag * -1, zweck, art, auftraggeber)); + + return true; + } + + return false; } + + public String[] getKontobewegungen() { + String[] auflistung = new String[kontobewegungen.size()]; + + int i = 0; + for (Kontobewegung kb : kontobewegungen) { + auflistung[i++] = kb.toString(); + } + + return auflistung; + } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java index ba1d31f..04e96ae 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/KontoTest.java @@ -1,58 +1,35 @@ -package de.hs_mannheim.informatik.bank.domain; - -import static org.junit.Assert.*; - -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - - -public class KontoTest { - - @Test - public void getKontonummerTest() { - Konto k1=new Konto("Marc1"); - Konto k2=new Konto("Marc2"); - Konto k3=new Konto("Marc3"); - - assertEquals(k1.getKontonummer(),1000); - assertEquals(k2.getKontonummer(),1001); - assertEquals(k3.getKontonummer(),1002); - - Assert.assertEquals("einzahlen min",k1.Einzahlen(1),1L); - Assert.assertEquals("hohe Zahl",k2.Einzahlen(999999),999999L); - Assert.assertEquals("negative Zahl",k3.Einzahlen(-1),0); - - //testen der Einzahlen mit sendernummer - Assert.assertEquals("einzahlen min",k1.Einzahlen(1,1000),2L); - Assert.assertEquals("hohe Zahl",k2.Einzahlen(999999,1001),1999998L); - Assert.assertEquals("negative Zahl",k3.Einzahlen(-1,1002),0); - - //to String Methode testen - assertEquals(k1.toString(),"Konto [nummer=1000, inhaber=Marc1]"); - assertEquals(k2.toString(),"Konto [nummer=1001, inhaber=Marc2]"); - assertEquals(k3.toString(),"Konto [nummer=1002, inhaber=Marc3]"); - } - - -// @Test -// public void testKonto() { -// Konto k = new Konto("Müller"); -// assertEquals("Müller", k.getInhaber()); -// assertEquals(1000, k.getKontonummer()); -// assertEquals(0, k.getStand()); -// -// Konto k2 = new Konto("Mayer"); -// assertEquals("Mayer", k2.getInhaber()); -// assertNotEquals(k.getKontonummer(), k2.getKontonummer()); -// assertEquals(1001, k2.getKontonummer()); -// -// k2.Einzahlen(100); -// assertEquals(100, k2.getStand()); -// k2.abbuchen(50); -// assertEquals(50, k2.getStand()); -// -// assertEquals(50, k2.getStand()); -// } - -} +package de.hs_mannheim.informatik.bank.domain; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class KontoTest { + + @Test + void testKontoBasics() { + Konto k = new Konto("Müller", 0); + assertEquals("Müller", k.getInhaber()); + assertEquals(1000, k.getKontonummer()); + assertEquals(0, k.getKontostand()); + } + + @Test + void testKontoEinUndAuszahlung() { + Konto k = new Konto("Müller", 0); + Konto k2 = new Konto("Mayer", 1); + + assertEquals("Mayer", k2.getInhaber()); + assertNotEquals(k.getKontonummer(), k2.getKontonummer()); + + k2.einzahlen(100, "Test", "Einzahlung", "JUnit"); + assertEquals(100, k2.getKontostand()); + + assertTrue(k2.auszahlen(50, "Test", "Auszahlung", "JUnit")); + assertEquals(50, k2.getKontostand()); + + assertFalse(k2.auszahlen(500, "Test", "Auszahlung", "JUnit")); + assertEquals(50, k2.getKontostand()); + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontoauszug.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontoauszug.java deleted file mode 100644 index 07f6a81..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/domain/Kontoauszug.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.hs_mannheim.informatik.bank.domain; - -import java.io.Serializable; -import java.util.ArrayList; - -public class Kontoauszug implements Serializable{ - private ArrayList Historie=new ArrayList(); - - - - - public void Hinzufügen(double Menge, int Empfänger) { - Aktivität neu=new Aktivität(Menge,Empfänger); - Historie.add(neu); - } - public void Hinzufügen(double Menge, String Ort) { - Aktivität neu=new Aktivität(Menge,Ort); - Historie.add(neu); - } - - public void Auszug() { - if(Historie.size()>0) - for(int i=0;i konten = bank.getKontenliste(); - String[] liste = new String[konten.size()]; - + int i = 0; for (Konto k : konten) { liste[i++] = k.toString(); } + return liste; } - + public String getBankname() { return bank.getName(); } - public long Einzahlen(int Kontonummer,long Betrag) { - return bank.GeldEinzahlen(Kontonummer, Betrag); + + public long geldEinzahlen(int kontonummer, long betrag) throws Exception { + Konto konto = bank.findeKonto(kontonummer); + konto.einzahlen(betrag, "Einzahlung am Schalter", "Einzahlung", konto.getInhaber()); + + Persistenz.speichereBankDaten(this.bank, bank.getName()); + + return konto.getKontostand(); } - public long getKontostand(int Kontonummer) { - return bank.getKontostand(Kontonummer); + + public boolean geldAuszahlen(int kontonummer, long betrag) throws Exception { + Konto konto = bank.findeKonto(kontonummer); + + Persistenz.speichereBankDaten(this.bank, bank.getName()); + + return konto.auszahlen(betrag, "Auszahlung am Schalter", "Auszahlung", konto.getInhaber()); } + + public String[] erstelleKontoauszug(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + + return konto.getKontobewegungen(); + } + + public boolean ÜberweisungBeauftragen(int startkonto, int zielkonto, long betrag, String verwendungszweck) { + Konto start = bank.findeKonto(startkonto); + Konto ziel = bank.findeKonto(zielkonto); + + if (start instanceof Girokonto && ziel instanceof Girokonto) { + return ((Girokonto)start).Überweise((Girokonto)ziel, betrag, verwendungszweck); + } + + return false; + } + - public void kontoAuszugerstellen(int Kontonummer) { - bank.kontoAuszugerstellen(Kontonummer); - } - public long Abheben(int Kontonummer,long Menge) { - return bank.abheben(Kontonummer, Menge); - } - public void Überweisung(int Empfänger, int Sender,long Menge) { - bank.kontoÜberweisen(Empfänger, Sender, Menge); - } - public void Speichern() throws Exception { - DB.Speichern(bank); - } - public void Laden()throws Exception{ - if(DB.Laden()!=null) - this.bank=DB.Laden(); + public long getKontostand(int kontonummer) { + Konto konto = bank.findeKonto(kontonummer); + + return konto.getKontostand(); } + } diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java deleted file mode 100644 index 4548a8f..0000000 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/BanksystemTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package de.hs_mannheim.informatik.bank.facade; - -import static org.junit.Assert.*; - -import org.junit.Assert; -import org.junit.Test; - - -public class BanksystemTest { - - @Test - public void Testcase1() { - Banksystem bs=new Banksystem("Testbank"); - int kontonummer=bs.kontoAnlegen("Marc",false); - System.out.println(kontonummer); - Assert.assertEquals("erster Testcase einzahlen des mindestWerts",bs.Einzahlen(kontonummer, 1L),1L); - } - @Test - public void Testcase2() { - Banksystem bs=new Banksystem("Testbank"); - bs.kontoAnlegen("Marc",false); - int kontonummer=bs.kontoAnlegen("Marc1",true); - System.out.println(kontonummer); - Assert.assertEquals("höchst Wert",bs.Einzahlen(kontonummer, 9999999999999999L),9999999999999999L); - } - - @Test - public void Testcase3() { - Banksystem bs=new Banksystem("Testbank"); - bs.kontoAnlegen("Marc",false); - bs.kontoAnlegen("Marc1",true); - int kontonummer = bs.kontoAnlegen("Marc2",false); - System.out.println(kontonummer); - Assert.assertEquals("Test zum nichtbeachten Zahlen kleiner 0",bs.Einzahlen(kontonummer, -1L),0L); - } - - @Test - public void Testcase4() { - Banksystem bs=new Banksystem("Testbank"); - bs.kontoAnlegen("Marc",true); - bs.kontoAnlegen("Marc1",false); - bs.kontoAnlegen("Marc2",true); - bs.kontoAnlegen("Marc3",false); - bs.kontoAnlegen("Marc4",true); - - bs.kontoAnlegen("Marc5",false); - bs.kontoAnlegen("Marc6",true); - bs.kontoAnlegen("Marc7",false); - bs.kontoAnlegen("Marc8",true); - int kontonummer=bs.kontoAnlegen("Marc9",false); - System.out.println(kontonummer); - Assert.assertEquals("Höchstwert der Kontonummer testen",bs.Einzahlen(kontonummer, 1L),1L); - } - @Test(expected = NullPointerException.class) - public void Testcase5() { - Banksystem bs=new Banksystem("Testbank"); - bs.kontoAnlegen("Marc",false); - bs.kontoAnlegen("Marc1",true); - bs.kontoAnlegen("Marc2",false); - bs.kontoAnlegen("Marc3",true); - bs.kontoAnlegen("Marc4",false); - - bs.kontoAnlegen("Marc5",true); - bs.kontoAnlegen("Marc6",false); - bs.kontoAnlegen("Marc7",true); - bs.kontoAnlegen("Marc8",false); - bs.kontoAnlegen("Marc9",true); - Assert.assertEquals("Fehlermeldung bei zukleiner Kontonummer",bs.Einzahlen(999, 1L),1L); - } - @Test(expected = NullPointerException.class) - public void Testcase6() { - Banksystem bs=new Banksystem("Testbank"); - bs.kontoAnlegen("Marc",true); - bs.kontoAnlegen("Marc1",true); - bs.kontoAnlegen("Marc2",true); - bs.kontoAnlegen("Marc3",true); - bs.kontoAnlegen("Marc4",true); - - bs.kontoAnlegen("Marc5",false); - bs.kontoAnlegen("Marc6",false); - bs.kontoAnlegen("Marc7",false); - bs.kontoAnlegen("Marc8",false); - bs.kontoAnlegen("Marc9",false); - - Assert.assertEquals("Fehlermeldung bei zu großer Kontonummer",bs.Einzahlen(1100, 1L),1L); - } - -} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java new file mode 100644 index 0000000..0ce5674 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/facade/SystemTest.java @@ -0,0 +1,19 @@ +package de.hs_mannheim.informatik.bank.facade; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; + +class SystemTest { + + @Test + void smokeTest() throws Exception { + Banksystem bs = new Banksystem("Testsystem"); + + assertNotNull(bs); + assertEquals(0, bs.getKontenliste().length); + assertEquals("Testsystem", bs.getBankname()); + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java new file mode 100644 index 0000000..5d08e48 --- /dev/null +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/infrastructure/Persistenz.java @@ -0,0 +1,30 @@ +package de.hs_mannheim.informatik.bank.infrastructure; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + +public class Persistenz { + private static final String BANK_DATEI = "-bank-data.ser"; + + public static boolean sindDatenGespeichert(String name) { + return new File(name + BANK_DATEI).exists(); + } + + public static void speichereBankDaten(Object bank, String name) throws Exception { + ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(name + BANK_DATEI)); + oos.writeObject(bank); + oos.close(); + } + + public static Object ladeBankDaten(String name) throws Exception { + ObjectInputStream ois = new ObjectInputStream(new FileInputStream(name + BANK_DATEI)); + Object bank = ois.readObject(); + ois.close(); + + return bank; + } + +} diff --git a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java index 1fed36e..a5f4a7f 100644 --- a/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java +++ b/Bank-Beispiel/src/de/hs_mannheim/informatik/bank/ui/UI.java @@ -2,18 +2,15 @@ package de.hs_mannheim.informatik.bank.ui; import java.util.Scanner; -import de.hs_mannheim.informatik.bank.domain.Bank; import de.hs_mannheim.informatik.bank.facade.Banksystem; public class UI { private Banksystem bs; Scanner sc = new Scanner(System.in); - public UI(Banksystem bs) throws Exception { + public UI(Banksystem bs) { this.bs = bs; - Laden(); hauptmenü(); - Speichern(); } private void hauptmenü() { @@ -23,14 +20,14 @@ public class UI { while (true) { System.out.println(); System.out.println("--------"); - System.out.println("Hauptmenü"); + System.out.println("Hauptmenü"); System.out.println("1 -> Konten anzeigen"); System.out.println("2 -> Konto anlegen"); System.out.println("3 -> Geld einzahlen"); - System.out.println("4 -> Geld Auszahlen"); - System.out.println("5 -> Kontostand abfragen"); - System.out.println("6 -> Kontoauszug erstellen"); - System.out.println("7 -> Überweisung an anderes Konto"); + System.out.println("4 -> Geld auszahlen"); + System.out.println("5 -> Kontoauszug drucken"); + System.out.println("6 -> Ãœberweisung beauftragen"); + System.out.println("9 -> Beenden"); System.out.println(); @@ -38,145 +35,115 @@ public class UI { int input = Integer.parseInt(sc.nextLine()); System.out.println(); - switch(input) { + try { + switch(input) { case 1: kontenAnzeigen(); break; - case 2: kontoAnlegen(); break; - case 3: kontoEinzahlen();break; - case 4: kontoAuszahlen();break; - case 5: kontoStandAbfragen();break; - case 6: kontoAuszugerstellen();break; - case 7: kontoÜberweißen();break; + case 2: + kontoAnlegen(); + break; + case 3: geldEinzahlen(); break; + case 4: geldAuszahlen(); break; + case 5: kontoauszugDrucken(); break; + case 6: ÜberweisungBeauftragen(); break; case 9: break mainloop; - } + } + + } catch (Exception e) { + System.err.println(e.getLocalizedMessage()); + } + System.out.println(); } System.out.println("Auf Wiedersehen!"); - } // hauptmenü + } // hauptmenü private void kontenAnzeigen() { String[] konten = bs.getKontenliste(); if (konten.length > 0) { - System.out.println("Folgende Konten sind aktuell verfügbar:"); + System.out.println("Folgende Konten sind aktuell verfügbar:"); for (String s : konten) { System.out.println(s); } } else { System.out.println("Bisher keine Konten angelegt."); } - sc.nextLine(); } - private void kontoAnlegen() { - System.out.println("Soll das Konto ein Girokonto sein? Es macht das Überweißen zwischen Konten möglich: j/n"); - String eingabe=sc.nextLine(); - boolean Giro=eingabe.equals("j")||eingabe.equals("ja")||eingabe.equals("Ja")||eingabe.equals("J"); - System.out.println("Bitte den Namen des Kontoinhabers angeben: "); - String name = sc.nextLine(); + private void kontoAnlegen() throws Exception { + System.out.println("Bitte den Namen des Kontoinhabers angeben: "); + String name = sc.nextLine(); - int kontonummer = bs.kontoAnlegen(name,Giro); - System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); - sc.nextLine(); - } - public void kontoEinzahlen() { - - - System.out.println("Kontonummer: "); - int Kontonummer=Integer.parseInt(sc.nextLine()); - double Betrag=richtigerBetrag(); + System.out.println("Möchten Sie ein Sparkonto (1) oder ein Girokonto (2) anlegen?"); + int auswahl = Integer.parseInt(sc.nextLine()); - - - if(existiertKonto(Kontonummer)&&Betrag!=0) { - double Kontostand=bs.Einzahlen(Kontonummer, (long) Betrag); - System.out.println("Der aktuelle Kontostand beträgt: "+Kontostand/100.0+" Euro"); - } - sc.nextLine(); - - - - + int kontonummer = bs.kontoAnlegen(name, auswahl); + System.out.println("Konto mit der Nummer " + kontonummer + " neu angelegt."); } - public void kontoStandAbfragen() { - System.out.println("bitte geben Sie ihre Kontonummer an: "); - int Kontonummer=Integer.parseInt(sc.nextLine()); - if(existiertKonto(Kontonummer)) - System.out.println("der Kontostand beträgt: "+ bs.getKontostand(Kontonummer)/100.0); - - sc.nextLine(); - } - - public void kontoAuszugerstellen() { - System.out.println("bitte geben Sie ihre Kontonummer an: "); - int Kontonummer=Integer.parseInt(sc.nextLine()); - if(existiertKonto(Kontonummer)) - bs.kontoAuszugerstellen(Kontonummer); - sc.nextLine(); - } - public void kontoAuszahlen() { - System.out.println("Kontonummer: "); - int Kontonummer=Integer.parseInt(sc.nextLine()); - double Betrag=richtigerBetrag(); - if(existiertKonto(Kontonummer)&&Betrag!=0) { - long Kontostand=bs.Abheben(Kontonummer,(long) Betrag); - System.out.println("Der aktuelle Kontostand beträgt: "+Kontostand/100.0+" Euro"); - } - sc.nextLine(); - } - public void kontoÜberweißen() { - System.out.println("Kontonummer Absender: "); - int KontonummerA=Integer.parseInt(sc.nextLine()); - System.out.println("Kontonummer Empfänger: "); - int KontonummerE=Integer.parseInt(sc.nextLine()); - - double Betrag=richtigerBetrag(); + private void geldEinzahlen() throws Exception { + System.out.println("Geld einzahlen"); + System.out.print("Bitte die gewünschte Kontonummer eingeben: "); + int kontonummer = Integer.parseInt(sc.nextLine()); - if(existiertKonto(KontonummerA)&&Betrag!=0&&existiertKonto(KontonummerE)) { - bs.Überweisung(KontonummerE, KontonummerA,(long) Betrag); - } - sc.nextLine(); - + // optional prüfen, ob Konto existiert + + System.out.print("Bitte den gewünschten Betrag eingeben: "); + double betrag = Double.parseDouble(sc.nextLine()); + + long neuerKontostand = bs.geldEinzahlen(kontonummer, (long)betrag * 100); + + System.out.printf("Einzahlung erfolgreich, neuer Kontostand = %.2f Euro", (neuerKontostand / 100.0)); } - - public void Laden()throws Exception{ - bs.Laden(); + + private void geldAuszahlen() throws Exception { + System.out.println("Geld auszahlen"); + System.out.print("Bitte die gewünschte Kontonummer eingeben: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + + System.out.print("Bitte den gewünschten Betrag eingeben: "); + double betrag = Double.parseDouble(sc.nextLine()); + + boolean erfolgreich = bs.geldAuszahlen(kontonummer, (long)betrag * 100); + + System.out.printf("Auszahlung" + ((!erfolgreich)? " nicht" : "" )+ " erfolgreich. "); + System.out.printf("Neuer Kontostand = %.2f Euro.", (bs.getKontostand(kontonummer) / 100.0)); } - public void Speichern()throws Exception{ - bs.Speichern(); - } - - - - - - - - public boolean existiertKonto(int Kontonummer) { - try { - bs.getKontostand(Kontonummer); - return true; - }catch(Exception NullPointerException){ - System.out.println("Konto mit der Nummer: "+Kontonummer+" existiert nicht"); - return false; - } - } - public double richtigerBetrag() { - try { - System.out.println("Betrag angeben"); - double Betrag=(Double.parseDouble(sc.nextLine())*100); - Betrag=(int)Betrag; - if(Betrag<0) { - System.out.println("Man kann keine negativen Beträge einzahlen "); - return 0; - } - return Betrag; - - } - catch(Exception InputMismatchException){ - System.out.println("Bitte daran denken das nur ganze Zahlen mit Long angenommen werden"); - return 0; + + private void kontoauszugDrucken() { + System.out.print("Bitte die gewünschte Kontonummer für den Auszug eingeben: "); + int kontonummer = Integer.parseInt(sc.nextLine()); + + System.out.println(); + + // in echt auf einem Drucker + System.out.println("Auszug für Konto " + kontonummer); + String[] kontobewegungen = bs.erstelleKontoauszug(kontonummer); + + if (kontobewegungen.length > 0) + for (String kb : kontobewegungen) { + System.out.println(kb); } + else + System.out.println("Noch keine Kontobewegungen."); } - + + private void ÜberweisungBeauftragen() { + System.out.print("Bitte die Kontonummer des Ausgangskontos der Ãœberweisung eingeben: "); + int startkonto = Integer.parseInt(sc.nextLine()); + + System.out.print("Bitte die Kontonummmer für das Zielkonto der Ãœberweisung eingeben: "); + int zielkonto = Integer.parseInt(sc.nextLine()); + + System.out.print("Bitte den gewünschten Ãœberweisungsbetrag eingeben: "); + double betrag = Double.parseDouble(sc.nextLine()); + + System.out.print("Bitte den Verwendungszweck eingeben: "); + String verwendungszweck = sc.nextLine(); + + boolean erfolgreich = bs.ÜberweisungBeauftragen(startkonto, zielkonto, (long)(betrag * 100), verwendungszweck); + + System.out.println("Ãœberweisung" + ( (!erfolgreich) ? " nicht" : "") + " erfolgreich ausgeführt."); + } + }