From 0edc8e98e274aadadc09f58f26beac2557eb3659 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 22 May 2011 17:21:36 +0200 Subject: some changes --- bank-eiffel/account.e | 34 +++++++++++++++++++++++----------- bank-eiffel/person.e | 10 +++++----- bank-eiffel/retireeaccount.e | 2 ++ bank-eiffel/studentaccount.e | 2 ++ bank-eiffel/tests/test_account.e | 6 +++--- 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 transfer_minamount: REAL_64 assign set_transfer_minamount -- Mindestbetrag für jede Einzahlung, Auszahlung und Überweisung - authorized_signers: SET [PERSON] + authorized_signers: ARRAYED_SET [PERSON] -- Zeichnungsberechtigte attribute Result := ({like authorized_signers}).default end --| Remove line when Void Safety is properly set @@ -39,11 +39,13 @@ feature -- Access balance: REAL_64 -- Kontostand -feature -- Initialization +feature {NONE} -- Initialization make (an_authorized_signer: PERSON) do + create authorized_signers.make(1) add_authorized_signer (an_authorized_signer) + transfer_minamount := 2 balance := 0 end @@ -67,21 +69,19 @@ feature -- Basic operations do balance := balance - an_amount ensure - balance_increased: balance < old balance + balance_decreased: balance < old balance withdrawed: balance = old balance - an_amount creditline_ok: balance >= creditline end -feature -- Element change - - set_transfer_minamount (a_transfer_minamount: like transfer_minamount) - -- Assign `transfer_minamount' with `a_transfer_minamount'. + transfer(an_amount: like transfer_minamount; an_account: like Current) require - a_transfer_minamount_positive: a_transfer_minamount > 0.0 + an_amount_positive: an_amount > 0.0 + transfer_minamount_ok: an_amount >= transfer_minamount + an_account_attached: an_account /= Void do - transfer_minamount := a_transfer_minamount - ensure - transfer_minamount_assigned: transfer_minamount = a_transfer_minamount + withdraw (an_amount) + an_account.deposit (an_amount) end add_authorized_signer (an_authorized_signer: PERSON) @@ -105,6 +105,18 @@ feature -- Element change authorized_signers_assigned: not authorized_signers.has (an_authorized_signer) end +feature {NONE} -- Implementation + + set_transfer_minamount (a_transfer_minamount: like transfer_minamount) + -- Assign `transfer_minamount' with `a_transfer_minamount'. + require + a_transfer_minamount_positive: a_transfer_minamount > 0.0 + do + transfer_minamount := a_transfer_minamount + ensure + transfer_minamount_assigned: transfer_minamount = a_transfer_minamount + end + set_creditline (a_creditline: like creditline) -- Assign `creditline' with `a_creditline'. 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 create make -feature -- Initialization +feature -- Access surname: STRING_8 assign set_surname -- Nachname @@ -20,15 +20,15 @@ feature -- Initialization -- Vorname attribute Result := ({like firstname}).default end --| Remove line when Void Safety is properly set -feature -- Initialization +feature {NONE} -- Initialization make (a_surname: like surname; a_firstname: like firstname) do - set_surname (a_surname) - set_firstname (a_firstname) + surname := a_surname + firstname := a_firstname end -feature -- Element change +feature {NONE} -- Implementation set_surname (a_surname: like surname) -- 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 inherit ACCOUNT +invariant + authorized_signers_only_one: authorized_signers.count = 1 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 inherit ACCOUNT +invariant + authorized_signers_only_one: authorized_signers.count = 1 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 feature -- Test routines - CREATE_ACCOUNT - -- New test routine + CREATE_EDIT_ACCOUNT local person1: PERSON account: ACCOUNT do - create person1.make ("VORNAME", "NACHNAME") + create person1.make ("SOME_SURNAME", "SOME_FIRSTNAME") + create account.make (person1) --assert ("not_implemented", False) end 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 assert("CREATE_EDIT_PERSON_FIRSTNAME_1", person.firstname.is_equal("SOME_FIRSTNAME_1")) assert("CREATE_EDIT_PERSON_SURNAME_1", person.surname.is_equal("SOME_SURNAME_1")) - person.set_firstname("SOME_FIRSTNAME_2") + person.firstname := "SOME_FIRSTNAME_2" assert("CREATE_EDIT_PERSON_FIRSTNAME_2", person.firstname.is_equal("SOME_FIRSTNAME_2")) - person.set_surname("SOME_SURENAME_2") - assert("CREATE_EDIT_PERSON_SURNAME_2", person.surname.is_equal("SOME_SURENAME_2")) - - person.firstname := "SOME_FIRSTNAME_3" - assert("CREATE_EDIT_PERSON_FIRSTNAME_3", person.firstname.is_equal("SOME_FIRSTNAME_3")) - person.surname := "SOME_SURNAME_3" - assert("CREATE_EDIT_PERSON_SURNAME_3", person.surname.is_equal("SOME_SURNAME_3")) + person.surname := "SOME_SURNAME_2" + assert("CREATE_EDIT_PERSON_SURNAME_2", person.surname.is_equal("SOME_SURNAME_2")) end CREATE_EDIT_PERSON_EMPTY_SURNAME @@ -63,20 +58,6 @@ feature -- Test routines person.surname := void doretry := False assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_4", False) - elseif retry_count = 4 then - doretry := False - create person.make("SOME_SURNAME", "SOME_FIRSTNAME") - doretry := True - person.set_surname("") - doretry := False - assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_5", False) - elseif retry_count = 5 then - doretry := False - create person.make("SOME_SURNAME", "SOME_FIRSTNAME") - doretry := True - person.set_surname(void) - doretry := False - assert("CREATE_EDIT_PERSON_EMPTY_SURNAME_6", False) else doretry := False end @@ -116,20 +97,6 @@ feature -- Test routines person.firstname := void doretry := False assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_4", False) - elseif retry_count = 4 then - doretry := False - create person.make("SOME_SURNAME", "SOME_FIRSTNAME") - doretry := True - person.set_firstname("") - doretry := False - assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_5", False) - elseif retry_count = 5 then - doretry := False - create person.make("SOME_SURNAME", "SOME_FIRSTNAME") - doretry := True - person.set_firstname(void) - doretry := False - assert("CREATE_EDIT_PERSON_EMPTY_FIRSTNAME_6", False) else doretry := False end -- cgit v1.2.3