diff options
| author | manuel <manuel@mausz.at> | 2011-05-22 17:21:36 +0200 |
|---|---|---|
| committer | manuel <manuel@mausz.at> | 2011-05-22 17:21:36 +0200 |
| commit | 0edc8e98e274aadadc09f58f26beac2557eb3659 (patch) | |
| tree | f14ce00a2b77d3bdeb6fa98e914530b1d3326ad6 | |
| parent | c4fbebf96418f14fd5b9f407f6a63c925b8f41a3 (diff) | |
| download | foop-0edc8e98e274aadadc09f58f26beac2557eb3659.tar.gz foop-0edc8e98e274aadadc09f58f26beac2557eb3659.tar.bz2 foop-0edc8e98e274aadadc09f58f26beac2557eb3659.zip | |
some changes
| -rw-r--r-- | bank-eiffel/account.e | 34 | ||||
| -rw-r--r-- | bank-eiffel/person.e | 10 | ||||
| -rw-r--r-- | bank-eiffel/retireeaccount.e | 2 | ||||
| -rw-r--r-- | bank-eiffel/studentaccount.e | 2 | ||||
| -rw-r--r-- | bank-eiffel/tests/test_account.e | 6 | ||||
| -rw-r--r-- | bank-eiffel/tests/test_person.e | 39 |
6 files changed, 38 insertions, 55 deletions
diff --git a/bank-eiffel/account.e b/bank-eiffel/account.e index 6c81313..154a1fa 100644 --- a/bank-eiffel/account.e +++ b/bank-eiffel/account.e | |||
| @@ -23,7 +23,7 @@ feature -- Access | |||
| 23 | transfer_minamount: REAL_64 assign set_transfer_minamount | 23 | transfer_minamount: REAL_64 assign set_transfer_minamount |
| 24 | -- Mindestbetrag für jede Einzahlung, Auszahlung und Überweisung | 24 | -- Mindestbetrag für jede Einzahlung, Auszahlung und Überweisung |
| 25 | 25 | ||
| 26 | authorized_signers: SET [PERSON] | 26 | authorized_signers: ARRAYED_SET [PERSON] |
| 27 | -- Zeichnungsberechtigte | 27 | -- Zeichnungsberechtigte |
| 28 | attribute Result := ({like authorized_signers}).default end --| Remove line when Void Safety is properly set | 28 | attribute Result := ({like authorized_signers}).default end --| Remove line when Void Safety is properly set |
| 29 | 29 | ||
| @@ -39,11 +39,13 @@ feature -- Access | |||
| 39 | balance: REAL_64 | 39 | balance: REAL_64 |
| 40 | -- Kontostand | 40 | -- Kontostand |
| 41 | 41 | ||
| 42 | feature -- Initialization | 42 | feature {NONE} -- Initialization |
| 43 | 43 | ||
| 44 | make (an_authorized_signer: PERSON) | 44 | make (an_authorized_signer: PERSON) |
| 45 | do | 45 | do |
| 46 | create authorized_signers.make(1) | ||
| 46 | add_authorized_signer (an_authorized_signer) | 47 | add_authorized_signer (an_authorized_signer) |
| 48 | transfer_minamount := 2 | ||
| 47 | balance := 0 | 49 | balance := 0 |
| 48 | end | 50 | end |
| 49 | 51 | ||
| @@ -67,21 +69,19 @@ feature -- Basic operations | |||
| 67 | do | 69 | do |
| 68 | balance := balance - an_amount | 70 | balance := balance - an_amount |
| 69 | ensure | 71 | ensure |
| 70 | balance_increased: balance < old balance | 72 | balance_decreased: balance < old balance |
| 71 | withdrawed: balance = old balance - an_amount | 73 | withdrawed: balance = old balance - an_amount |
| 72 | creditline_ok: balance >= creditline | 74 | creditline_ok: balance >= creditline |
| 73 | end | 75 | end |
| 74 | 76 | ||
| 75 | feature -- Element change | 77 | transfer(an_amount: like transfer_minamount; an_account: like Current) |
| 76 | |||
| 77 | set_transfer_minamount (a_transfer_minamount: like transfer_minamount) | ||
| 78 | -- Assign `transfer_minamount' with `a_transfer_minamount'. | ||
| 79 | require | 78 | require |
| 80 | a_transfer_minamount_positive: a_transfer_minamount > 0.0 | 79 | an_amount_positive: an_amount > 0.0 |
| 80 | transfer_minamount_ok: an_amount >= transfer_minamount | ||
| 81 | an_account_attached: an_account /= Void | ||
| 81 | do | 82 | do |
| 82 | transfer_minamount := a_transfer_minamount | 83 | withdraw (an_amount) |
| 83 | ensure | 84 | an_account.deposit (an_amount) |
| 84 | transfer_minamount_assigned: transfer_minamount = a_transfer_minamount | ||
| 85 | end | 85 | end |
| 86 | 86 | ||
| 87 | add_authorized_signer (an_authorized_signer: PERSON) | 87 | add_authorized_signer (an_authorized_signer: PERSON) |
| @@ -105,6 +105,18 @@ feature -- Element change | |||
| 105 | authorized_signers_assigned: not authorized_signers.has (an_authorized_signer) | 105 | authorized_signers_assigned: not authorized_signers.has (an_authorized_signer) |
| 106 | end | 106 | end |
| 107 | 107 | ||
| 108 | feature {NONE} -- Implementation | ||
| 109 | |||
| 110 | set_transfer_minamount (a_transfer_minamount: like transfer_minamount) | ||
| 111 | -- Assign `transfer_minamount' with `a_transfer_minamount'. | ||
| 112 | require | ||
| 113 | a_transfer_minamount_positive: a_transfer_minamount > 0.0 | ||
| 114 | do | ||
| 115 | transfer_minamount := a_transfer_minamount | ||
| 116 | ensure | ||
| 117 | transfer_minamount_assigned: transfer_minamount = a_transfer_minamount | ||
| 118 | end | ||
| 119 | |||
| 108 | set_creditline (a_creditline: like creditline) | 120 | set_creditline (a_creditline: like creditline) |
| 109 | -- Assign `creditline' with `a_creditline'. | 121 | -- Assign `creditline' with `a_creditline'. |
| 110 | do | 122 | do |
diff --git a/bank-eiffel/person.e b/bank-eiffel/person.e index 5f7d0bc..54e1a45 100644 --- a/bank-eiffel/person.e +++ b/bank-eiffel/person.e | |||
| @@ -10,7 +10,7 @@ class | |||
| 10 | create | 10 | create |
| 11 | make | 11 | make |
| 12 | 12 | ||
| 13 | feature -- Initialization | 13 | feature -- Access |
| 14 | 14 | ||
| 15 | surname: STRING_8 assign set_surname | 15 | surname: STRING_8 assign set_surname |
| 16 | -- Nachname | 16 | -- Nachname |
| @@ -20,15 +20,15 @@ feature -- Initialization | |||
| 20 | -- Vorname | 20 | -- Vorname |
| 21 | attribute Result := ({like firstname}).default end --| Remove line when Void Safety is properly set | 21 | attribute Result := ({like firstname}).default end --| Remove line when Void Safety is properly set |
| 22 | 22 | ||
| 23 | feature -- Initialization | 23 | feature {NONE} -- Initialization |
| 24 | 24 | ||
| 25 | make (a_surname: like surname; a_firstname: like firstname) | 25 | make (a_surname: like surname; a_firstname: like firstname) |
| 26 | do | 26 | do |
| 27 | set_surname (a_surname) | 27 | surname := a_surname |
| 28 | set_firstname (a_firstname) | 28 | firstname := a_firstname |
| 29 | end | 29 | end |
| 30 | 30 | ||
| 31 | feature -- Element change | 31 | feature {NONE} -- Implementation |
| 32 | 32 | ||
| 33 | set_surname (a_surname: like surname) | 33 | set_surname (a_surname: like surname) |
| 34 | -- Assign `surname' with `a_surname'. | 34 | -- Assign `surname' with `a_surname'. |
diff --git a/bank-eiffel/retireeaccount.e b/bank-eiffel/retireeaccount.e index 3b935d7..3f56fd4 100644 --- a/bank-eiffel/retireeaccount.e +++ b/bank-eiffel/retireeaccount.e | |||
| @@ -10,4 +10,6 @@ class | |||
| 10 | inherit | 10 | inherit |
| 11 | ACCOUNT | 11 | ACCOUNT |
| 12 | 12 | ||
| 13 | invariant | ||
| 14 | authorized_signers_only_one: authorized_signers.count = 1 | ||
| 13 | end | 15 | end |
diff --git a/bank-eiffel/studentaccount.e b/bank-eiffel/studentaccount.e index 831cb6a..a80d4bb 100644 --- a/bank-eiffel/studentaccount.e +++ b/bank-eiffel/studentaccount.e | |||
| @@ -10,4 +10,6 @@ class | |||
| 10 | inherit | 10 | inherit |
| 11 | ACCOUNT | 11 | ACCOUNT |
| 12 | 12 | ||
| 13 | invariant | ||
| 14 | authorized_signers_only_one: authorized_signers.count = 1 | ||
| 13 | end | 15 | end |
diff --git a/bank-eiffel/tests/test_account.e b/bank-eiffel/tests/test_account.e index 1820c45..7f16cc7 100644 --- a/bank-eiffel/tests/test_account.e +++ b/bank-eiffel/tests/test_account.e | |||
| @@ -15,13 +15,13 @@ inherit | |||
| 15 | 15 | ||
| 16 | feature -- Test routines | 16 | feature -- Test routines |
| 17 | 17 | ||
| 18 | CREATE_ACCOUNT | 18 | CREATE_EDIT_ACCOUNT |
| 19 | -- New test routine | ||
| 20 | local | 19 | local |
| 21 | person1: PERSON | 20 | person1: PERSON |
| 22 | account: ACCOUNT | 21 | account: ACCOUNT |
| 23 | do | 22 | do |
| 24 | create person1.make ("VORNAME", "NACHNAME") | 23 | create person1.make ("SOME_SURNAME", "SOME_FIRSTNAME") |
| 24 | create account.make (person1) | ||
| 25 | --assert ("not_implemented", False) | 25 | --assert ("not_implemented", False) |
| 26 | end | 26 | end |
| 27 | 27 | ||
diff --git a/bank-eiffel/tests/test_person.e b/bank-eiffel/tests/test_person.e index cd66ccb..a501deb 100644 --- a/bank-eiffel/tests/test_person.e +++ b/bank-eiffel/tests/test_person.e | |||
| @@ -23,15 +23,10 @@ feature -- Test routines | |||
| 23 | assert("CREATE_EDIT_PERSON_FIRSTNAME_1", person.firstname.is_equal("SOME_FIRSTNAME_1")) | 23 | assert("CREATE_EDIT_PERSON_FIRSTNAME_1", person.firstname.is_equal("SOME_FIRSTNAME_1")) |
| 24 | assert("CREATE_EDIT_PERSON_SURNAME_1", person.surname.is_equal("SOME_SURNAME_1")) | 24 | assert("CREATE_EDIT_PERSON_SURNAME_1", person.surname.is_equal("SOME_SURNAME_1")) |
| 25 | 25 | ||
| 26 | person.set_firstname("SOME_FIRSTNAME_2") | 26 | person.firstname := "SOME_FIRSTNAME_2" |
| 27 | assert("CREATE_EDIT_PERSON_FIRSTNAME_2", person.firstname.is_equal("SOME_FIRSTNAME_2")) | 27 | assert("CREATE_EDIT_PERSON_FIRSTNAME_2", person.firstname.is_equal("SOME_FIRSTNAME_2")) |
| 28 | person.set_surname("SOME_SURENAME_2") | 28 | person.surname := "SOME_SURNAME_2" |
| 29 | assert("CREATE_EDIT_PERSON_SURNAME_2", person.surname.is_equal("SOME_SURENAME_2")) | 29 | assert("CREATE_EDIT_PERSON_SURNAME_2", person.surname.is_equal("SOME_SURNAME_2")) |
| 30 | |||
| 31 | person.firstname := "SOME_FIRSTNAME_3" | ||
| 32 | assert("CREATE_EDIT_PERSON_FIRSTNAME_3", person.firstname.is_equal("SOME_FIRSTNAME_3")) | ||
| 33 | person.surname := "SOME_SURNAME_3" | ||
| 34 | assert("CREATE_EDIT_PERSON_SURNAME_3", person.surname.is_equal("SOME_SURNAME_3")) | ||
| 35 | end | 30 | end |
| 36 | 31 | ||
| 37 | CREATE_EDIT_PERSON_EMPTY_SURNAME | 32 | CREATE_EDIT_PERSON_EMPTY_SURNAME |
| @@ -63,20 +58,6 @@ feature -- Test routines | |||
| 63 | person.surname := void | 58 | person.surname := void |
| 64 | doretry := False | 59 | doretry := False |
| 65 | assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_4", False) | 60 | assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_4", False) |
| 66 | elseif retry_count = 4 then | ||
| 67 | doretry := False | ||
| 68 | create person.make("SOME_SURNAME", "SOME_FIRSTNAME") | ||
| 69 | doretry := True | ||
| 70 | person.set_surname("") | ||
| 71 | doretry := False | ||
| 72 | assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_5", False) | ||
| 73 | elseif retry_count = 5 then | ||
| 74 | doretry := False | ||
| 75 | create person.make("SOME_SURNAME", "SOME_FIRSTNAME") | ||
| 76 | doretry := True | ||
| 77 | person.set_surname(void) | ||
| 78 | doretry := False | ||
| 79 | assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_6", False) | ||
| 80 | else | 61 | else |
| 81 | doretry := False | 62 | doretry := False |
| 82 | end | 63 | end |
| @@ -116,20 +97,6 @@ feature -- Test routines | |||
| 116 | person.firstname := void | 97 | person.firstname := void |
| 117 | doretry := False | 98 | doretry := False |
| 118 | assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_4", False) | 99 | assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_4", False) |
| 119 | elseif retry_count = 4 then | ||
| 120 | doretry := False | ||
| 121 | create person.make("SOME_SURNAME", "SOME_FIRSTNAME") | ||
| 122 | doretry := True | ||
| 123 | person.set_firstname("") | ||
| 124 | doretry := False | ||
| 125 | assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_5", False) | ||
| 126 | elseif retry_count = 5 then | ||
| 127 | doretry := False | ||
| 128 | create person.make("SOME_SURNAME", "SOME_FIRSTNAME") | ||
| 129 | doretry := True | ||
| 130 | person.set_firstname(void) | ||
| 131 | doretry := False | ||
| 132 | assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_6", False) | ||
| 133 | else | 100 | else |
| 134 | doretry := False | 101 | doretry := False |
| 135 | end | 102 | end |
