From 0c6215c54a7984d309b516bd84927fcee1766d4f Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:30:52 +0100 Subject: [PATCH 01/12] 3.1 stub --- 3.Integration Test Plan Document/ITPD.lyx | 291 +++++++++++++++++++++- 1 file changed, 288 insertions(+), 3 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 2b8f186..281b7cc 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -1725,11 +1725,24 @@ Subsystem Testing This section shows the order in which subsystems will be integrated. \end_layout +\begin_layout Standard +\begin_inset Note Note +status open + +\begin_layout Plain Layout +Da invertire freccia reservation manager?? +\end_layout + +\end_inset + + +\end_layout + \begin_layout Standard \begin_inset Float figure wide false sideways false -status collapsed +status open \begin_layout Plain Layout \align center @@ -1814,7 +1827,7 @@ Authentication Manager \begin_layout Plain Layout \family typewriter -register +register(User) \end_layout \end_inset @@ -1953,7 +1966,279 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -register +userExists(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +login(Credentials) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkCredentials(Credentials) \end_layout \end_inset From 4c5e58e4f86e4d3916fe5010000dd14bdf599088 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:33:47 +0100 Subject: [PATCH 02/12] 3.1 stub --- 3.Integration Test Plan Document/ITPD.lyx | 1110 +++++++++++++++++++++ 1 file changed, 1110 insertions(+) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 281b7cc..9b0e2dd 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -1802,6 +1802,10 @@ In the Sequence Diagrams shown in the Section 2.5 of the Design Document Account Management \end_layout +\begin_layout Paragraph +Authentication Manager +\end_layout + \begin_layout Standard Main functions implemented by the \series bold @@ -2355,6 +2359,1112 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Paragraph +AccountInformation Manager +\end_layout + +\begin_layout Standard +Main functions implemented by the +\series bold +AccountInformation Manager +\series default +: +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +removeUser(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +activate(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +deactivate(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +editProfile(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +getHistory(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +updateUser(user) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +enableMSO(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +disableMSO(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + \end_layout \begin_layout Subsection From 528b4a9911c0550a9e13c26fd24c6a549fb08cb6 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:37:00 +0100 Subject: [PATCH 03/12] 3.2 stub --- 3.Integration Test Plan Document/ITPD.lyx | 1388 ++++++++++++++++++++- 1 file changed, 1385 insertions(+), 3 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 9b0e2dd..3ae83f9 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -3471,10 +3471,14 @@ The user data are correctly inserted in the database. Car Management \end_layout +\begin_layout Paragraph +ADS_Application Manager +\end_layout + \begin_layout Standard Main functions implemented by the \series bold -Car Manager +ADS_Application Manager \series default : \begin_inset VSpace smallskip @@ -3496,7 +3500,7 @@ Car Manager \begin_layout Plain Layout \family typewriter -register +checkStatus() \end_layout \end_inset @@ -3635,7 +3639,1385 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -register +checkDamages() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkPosition() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkPassengers() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkPowerGrid() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +lockDoors() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +unlockDoors() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +updateReservationStatus(Status) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +getPosition() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Paragraph +Car Manager +\end_layout + +\begin_layout Standard +Main functions implemented by the +\series bold +Car Manager +\series default +: +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +requestInformation(Car) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +contactMaintananceService(Car) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +performAction(Car, Action) \end_layout \end_inset From 25b8a84b1b221ffbcc9abe19472041dfac074497 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:37:11 +0100 Subject: [PATCH 04/12] 3.2 stub --- 3.Integration Test Plan Document/ITPD.lyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 3ae83f9..8e14784 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -4720,7 +4720,7 @@ Car Manager \begin_layout Standard Main functions implemented by the \series bold -Car Manager +Car Manager \series default : \begin_inset VSpace smallskip From 8103a84ca5359dcc69c3d14b97080fb43effb193 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:42:26 +0100 Subject: [PATCH 05/12] 3.3 stub --- 3.Integration Test Plan Document/ITPD.lyx | 1968 +++++++++++++++++++++ 1 file changed, 1968 insertions(+) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 8e14784..b687e99 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -5134,6 +5134,1974 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Subsection +Reservation Management +\end_layout + +\begin_layout Paragraph +CheckAvailability Manager +\end_layout + +\begin_layout Standard +Main functions implemented by the +\series bold + CheckAvailability Manager +\series default +: +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkUserPosition(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +showMap(Car, User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +isAvailable(Car, User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Paragraph +Reservation Manager +\end_layout + +\begin_layout Standard +Main functions implemented by the +\series bold + Reservation Manager +\series default +: +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkUserPosition(User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +isReservable(Car, User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +isTerminable(Car, User) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +startReservation(Car) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +updateReservation(Reservation) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +endReservation(Reservation) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +startRent(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +updateRent(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +endRent(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkReservationStatus(Reservation) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkRentStatus(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + \end_layout \begin_layout Subsection From fe7b987cbff370ab275e8a3ade8458d0d74a5ddf Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:44:13 +0100 Subject: [PATCH 06/12] 3.4 stub --- 3.Integration Test Plan Document/ITPD.lyx | 578 +++++++++++++++++++++- 1 file changed, 575 insertions(+), 3 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index b687e99..edc217d 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -7108,10 +7108,14 @@ The user data are correctly inserted in the database. Events Handler \end_layout +\begin_layout Paragraph +Notification Manager +\end_layout + \begin_layout Standard Main functions implemented by the \series bold - Events Handler + Notification Manager \series default : \begin_inset VSpace smallskip @@ -7133,7 +7137,158 @@ Main functions implemented by the \begin_layout Plain Layout \family typewriter -register +notify(User, Notification) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Paragraph +Payment Manager +\end_layout + +\begin_layout Standard +Main functions implemented by the +\series bold + Payment Manager +\series default +: +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +calculateReservationFees(Reservation) \end_layout \end_inset @@ -7272,7 +7427,424 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -register +calculateRentFees(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +calculateRentDiscount(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +calculateAdditionalFee(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This is a cool description +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A non-null user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The user data are correctly inserted in the database. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +contactPaymentService() \end_layout \end_inset From 4ce2b1ff9809c2dd4b3234f4e9864fc52c94e440 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 16:44:41 +0100 Subject: [PATCH 07/12] Section 3 stub --- 3.Integration Test Plan Document/ITPD.lyx | 287 ---------------------- 1 file changed, 287 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index edc217d..4ca1115 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -7961,293 +7961,6 @@ The user data are correctly inserted in the database. \end_inset -\end_layout - -\begin_layout Subsection -Interfaces -\end_layout - -\begin_layout Standard -Main functions implemented by the -\series bold -Interfaces -\series default -: -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -register -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -register -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - \end_layout \begin_layout Section From d0a6bd7c2a5ae4200ac4ae0b3aed8b566ff6d04d Mon Sep 17 00:00:00 2001 From: Francesco Rinaldi Date: Wed, 11 Jan 2017 16:46:53 +0100 Subject: [PATCH 08/12] minor fix --- 3.Integration Test Plan Document/ITPD.lyx | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 4ca1115..1539c13 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -1725,24 +1725,11 @@ Subsystem Testing This section shows the order in which subsystems will be integrated. \end_layout -\begin_layout Standard -\begin_inset Note Note -status open - -\begin_layout Plain Layout -Da invertire freccia reservation manager?? -\end_layout - -\end_inset - - -\end_layout - \begin_layout Standard \begin_inset Float figure wide false sideways false -status open +status collapsed \begin_layout Plain Layout \align center From f36eb36e302e8cb7beff9c9435b05a01988d6dc8 Mon Sep 17 00:00:00 2001 From: Francesco Rinaldi Date: Wed, 11 Jan 2017 16:54:06 +0100 Subject: [PATCH 09/12] minor fixes --- 3.Integration Test Plan Document/ITPD.lyx | 31 +++++------------------ 1 file changed, 6 insertions(+), 25 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 1539c13..0341e04 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -1818,7 +1818,7 @@ Authentication Manager \begin_layout Plain Layout \family typewriter -register(User) +register(Credentials) \end_layout \end_inset @@ -1830,7 +1830,7 @@ register(User) \begin_layout Plain Layout \begin_inset Tabular - + @@ -1850,7 +1850,8 @@ Description \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function creates a new entity user in the system with all the information + provided by the user. \end_layout \end_inset @@ -1863,7 +1864,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input \end_layout \end_inset @@ -1885,27 +1886,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +A Credential object (name, surname, username, password, address..) \end_layout \end_inset From 1809a79fef183f291a3ce0e2985e3a529a2eebf9 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 17:47:34 +0100 Subject: [PATCH 10/12] 3.1 section --- 3.Integration Test Plan Document/ITPD.lyx | 749 +++++++++++----------- 1 file changed, 384 insertions(+), 365 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 0341e04..6b685a0 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -1809,7 +1809,7 @@ Authentication Manager \align center \begin_inset Tabular - + @@ -1830,12 +1830,12 @@ register(Credentials) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -1846,11 +1846,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This function creates a new entity user in the system with all the information +This function creates a new User object in the system with all the information provided by the user. \end_layout @@ -1864,7 +1864,7 @@ This function creates a new entity user in the system with all the information \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -1882,126 +1882,7 @@ Effect - -\begin_inset Text - -\begin_layout Plain Layout -A Credential object (name, surname, username, password, address..) -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -userExists(User) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - + \begin_inset Text \begin_layout Plain Layout @@ -2010,13 +1891,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An incomplete / duplicate set of information about the new user +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2025,7 +1926,8 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A full set of information about the new user (username, password, name, + surname, ...) \end_layout \end_inset @@ -2034,7 +1936,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The unique user data are correctly inserted in the database. + \end_layout \end_inset @@ -2055,6 +1958,9 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Standard \begin_inset VSpace smallskip \end_inset @@ -2065,7 +1971,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2086,12 +1992,12 @@ login(Credentials) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2102,11 +2008,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function allows any registered user to log into the system using his + username and password. \end_layout \end_inset @@ -2119,7 +2026,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2137,7 +2044,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2146,13 +2053,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2161,7 +2088,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An existent and valid Credentials object \end_layout \end_inset @@ -2170,7 +2097,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The user is logged in. \end_layout \end_inset @@ -2201,7 +2128,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2222,12 +2149,12 @@ checkCredentials(Credentials) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2238,11 +2165,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function verifies the user - password combination is correct. \end_layout \end_inset @@ -2255,7 +2182,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2273,7 +2200,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2282,13 +2209,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2297,7 +2244,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An existent and valid Credentials object \end_layout \end_inset @@ -2306,7 +2253,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns true. \end_layout \end_inset @@ -2349,7 +2296,7 @@ AccountInformation Manager \align center \begin_inset Tabular - + @@ -2370,12 +2317,12 @@ removeUser(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2386,11 +2333,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function deletes the User object from the system. \end_layout \end_inset @@ -2403,7 +2350,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2421,7 +2368,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2430,13 +2377,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2445,7 +2412,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An existent and valid User object \end_layout \end_inset @@ -2454,7 +2421,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User object is correctly removed. \end_layout \end_inset @@ -2488,7 +2455,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2509,12 +2476,12 @@ activate(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2525,11 +2492,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function restores the privileges of the User object. \end_layout \end_inset @@ -2542,7 +2509,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2560,7 +2527,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2569,13 +2536,53 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An Active User object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2584,7 +2591,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A Deactivated User object \end_layout \end_inset @@ -2593,7 +2600,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User object is no more a Deactivated User. \end_layout \end_inset @@ -2614,6 +2621,10 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -2624,7 +2635,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2633,7 +2644,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -deactivate(User) +deactivate(User) \end_layout \end_inset @@ -2645,12 +2656,12 @@ deactivate(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2661,11 +2672,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function removes privileges from the User object. \end_layout \end_inset @@ -2678,7 +2689,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2696,7 +2707,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2705,13 +2716,53 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A Deactivated User object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2720,7 +2771,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An Active User object \end_layout \end_inset @@ -2729,7 +2780,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User object is no more an Active User. \end_layout \end_inset @@ -2760,7 +2811,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2769,7 +2820,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -editProfile(User) +editProfile(User, Credentials) \end_layout \end_inset @@ -2781,12 +2832,12 @@ editProfile(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2797,11 +2848,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function updates the existent User object in the system with all the + new information provided by the Credentials object. \end_layout \end_inset @@ -2814,7 +2866,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2832,7 +2884,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2841,13 +2893,53 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An incomplete set of information +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -2856,7 +2948,8 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A full set of information about the User object (username, password, name, + surname, ...) \end_layout \end_inset @@ -2865,7 +2958,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User data is correctly updated in the database. + \end_layout \end_inset @@ -2896,7 +2990,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -2905,7 +2999,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -getHistory(User) +getHistory(User) \end_layout \end_inset @@ -2917,12 +3011,12 @@ getHistory(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -2933,11 +3027,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function returns all the User reservations. \end_layout \end_inset @@ -2950,7 +3044,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -2968,7 +3062,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -2977,7 +3071,7 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout @@ -2988,119 +3082,20 @@ A NullArgumentException is raised. - + \begin_inset Text \begin_layout Plain Layout -A non-null user +An invalid object \end_layout \end_inset - + \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -updateUser(user) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect +An InvalidArgumentException is raised. \end_layout \end_inset @@ -3111,27 +3106,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +An existent and valid User object \end_layout \end_inset @@ -3140,7 +3115,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A list of all the reservations is returned. \end_layout \end_inset @@ -3161,6 +3136,10 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -3171,7 +3150,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -3192,12 +3171,12 @@ enableMSO(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -3208,11 +3187,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function enables the Money Saving Option for the User. \end_layout \end_inset @@ -3225,7 +3204,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -3243,7 +3222,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -3252,13 +3231,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -3267,7 +3266,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An existent and valid User object \end_layout \end_inset @@ -3276,7 +3275,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User object has the MSO enabled. \end_layout \end_inset @@ -3307,7 +3306,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -3328,12 +3327,12 @@ disableMSO(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -3344,11 +3343,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function disables the Money Saving Option for the User. \end_layout \end_inset @@ -3361,7 +3360,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -3379,7 +3378,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -3388,13 +3387,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -3403,7 +3422,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +An existent and valid User object \end_layout \end_inset @@ -3412,7 +3431,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The User object has the MSO disabled. \end_layout \end_inset From dd17637eae1b2432abb980dec3d70c99ff1a1f05 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Wed, 11 Jan 2017 18:47:51 +0100 Subject: [PATCH 11/12] 3.2 / 3.3 and a half section | Fixed Reservation Management pngs --- 3.Integration Test Plan Document/ITPD.lyx | 1932 ++++++++--------- .../res/img/Reservation Management 1.png | Bin 49161 -> 49405 bytes .../res/img/Reservation Management 2.png | Bin 47527 -> 47789 bytes 3 files changed, 850 insertions(+), 1082 deletions(-) diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 6b685a0..153e9c2 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -3478,7 +3478,7 @@ ADS_Application Manager \align center \begin_inset Tabular - + @@ -3487,7 +3487,7 @@ ADS_Application Manager \begin_layout Plain Layout \family typewriter -checkStatus() +getStatus() \end_layout \end_inset @@ -3499,12 +3499,12 @@ checkStatus() \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -3515,11 +3515,27 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function asks the ADS to check the current status ( +\shape slanted +available +\shape default +, +\shape slanted +reserved +\shape default +, +\shape slanted +in_use +\shape default +, +\shape slanted +unavailable +\shape default +) of the car. \end_layout \end_inset @@ -3532,7 +3548,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -3554,27 +3570,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +None \end_layout \end_inset @@ -3583,7 +3579,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The car status is returned. \end_layout \end_inset @@ -3617,7 +3613,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -3626,7 +3622,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -checkDamages() +getDamages() \end_layout \end_inset @@ -3638,12 +3634,12 @@ checkDamages() \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -3654,11 +3650,18 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function queries the ADS to check the eventual car’s damages through + the sensors installed in there. + If the ADS find any kind of anomalies, it will change the status of the + car into +\shape slanted +unavailable +\shape default +. \end_layout \end_inset @@ -3671,7 +3674,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -3693,27 +3696,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +None \end_layout \end_inset @@ -3722,7 +3705,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The car damages are returned and the car status is updated. + \end_layout \end_inset @@ -3743,6 +3727,10 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -3753,826 +3741,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -checkPosition() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -checkPassengers() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -checkPowerGrid() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -lockDoors() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -unlockDoors() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -updateReservationStatus(Status) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - + @@ -4593,12 +3762,12 @@ getPosition() \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -4609,11 +3778,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function queries the ADS to check the current position of the car. \end_layout \end_inset @@ -4626,7 +3795,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -4648,16 +3817,113 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter +None \end_layout \end_inset - + \begin_inset Text \begin_layout Plain Layout -A NullArgumentException is raised. +The current position of the car is returned. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +getPassengers() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function queries the ADS the number of passengers actually inside the + car. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect \end_layout \end_inset @@ -4668,7 +3934,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +None \end_layout \end_inset @@ -4677,7 +3943,532 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The number of passengers actually inside the car is returned. + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +checkPowerGrid() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function queries the ADS to check if the car is plugged into the power + grid. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +None +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +Returns true if the car is plugged into the power grid, false otherwise. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +lockDoors() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function queries the ADS the lock the car’s doors and to change the + status of the car into +\shape slanted +available +\shape default +. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +None +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The doors are locked. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +unlockDoors() +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function queries the ADS the unlock the car’s doors and to change the + status of the car into +\shape slanted +in_use +\shape default +. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +None +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The doors are unlocked. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +updateCarStatus(Status) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function queries the ADS the change the car’s status into the one passed + as argument. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A valid Status object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The car status is updated according to the Status object. \end_layout \end_inset @@ -4710,6 +4501,10 @@ Main functions implemented by the Car Manager \series default : +\end_layout + +\begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -4720,7 +4515,7 @@ Car Manager \align center \begin_inset Tabular - + @@ -4729,7 +4524,7 @@ Car Manager \begin_layout Plain Layout \family typewriter -requestInformation(Car) +contactMaintainanceService(Car) \end_layout \end_inset @@ -4741,12 +4536,12 @@ requestInformation(Car) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -4757,11 +4552,13 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +Every time the Car Manager retrieve information about a car’s status, if + necessary, it will send a request of maintainance to an external maintanance + service through this function. \end_layout \end_inset @@ -4774,7 +4571,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -4792,7 +4589,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -4801,13 +4598,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -4816,7 +4633,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Car object \end_layout \end_inset @@ -4825,7 +4642,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A maintainance request to an external service is successfully sent for the + specified Car. \end_layout \end_inset @@ -4849,6 +4667,7 @@ The user data are correctly inserted in the database. \end_layout \begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -4859,7 +4678,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -4868,7 +4687,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -contactMaintananceService(Car) +ping(Car) \end_layout \end_inset @@ -4880,12 +4699,12 @@ contactMaintananceService(Car) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -4896,11 +4715,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function queries a Car to check whether it is online. \end_layout \end_inset @@ -4913,7 +4732,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -4931,7 +4750,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -4940,13 +4759,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -4955,7 +4794,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Car object \end_layout \end_inset @@ -4964,7 +4803,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A response from the Car is received. \end_layout \end_inset @@ -4985,6 +4824,10 @@ The user data are correctly inserted in the database. \end_inset +\end_layout + +\begin_layout Standard +\align center \begin_inset VSpace smallskip \end_inset @@ -4995,7 +4838,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5004,7 +4847,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -performAction(Car, Action) +carsInRadius(User) \end_layout \end_inset @@ -5016,12 +4859,12 @@ performAction(Car, Action) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5032,11 +4875,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function retrieves all the cars near the User location. \end_layout \end_inset @@ -5049,7 +4892,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5067,7 +4910,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5076,13 +4919,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5091,7 +4954,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid User object \end_layout \end_inset @@ -5100,7 +4963,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A list of cars near the User. \end_layout \end_inset @@ -5137,6 +5000,9 @@ Main functions implemented by the CheckAvailability Manager \series default : +\end_layout + +\begin_layout Standard \begin_inset VSpace smallskip \end_inset @@ -5147,7 +5013,7 @@ Main functions implemented by the \align center \begin_inset Tabular - + @@ -5156,7 +5022,7 @@ Main functions implemented by the \begin_layout Plain Layout \family typewriter -checkUserPosition(User) +getUserPosition(User) \end_layout \end_inset @@ -5168,12 +5034,12 @@ checkUserPosition(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5184,11 +5050,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will retrieve the information about the user’s position through + the Google Maps API. \end_layout \end_inset @@ -5201,7 +5068,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5219,7 +5086,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5228,13 +5095,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5243,7 +5130,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid User object \end_layout \end_inset @@ -5252,7 +5139,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The current position of the user is returned. \end_layout \end_inset @@ -5286,7 +5173,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5295,7 +5182,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -showMap(Car, User) +isAvailable(Car) \end_layout \end_inset @@ -5307,12 +5194,12 @@ showMap(Car, User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5323,11 +5210,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function check whether the Car is available. \end_layout \end_inset @@ -5340,7 +5227,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5358,7 +5245,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5367,7 +5254,7 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout @@ -5378,119 +5265,20 @@ A NullArgumentException is raised. - + \begin_inset Text \begin_layout Plain Layout -A non-null user +An invalid object \end_layout \end_inset - + \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -isAvailable(Car, User) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect +An InvalidArgumentException is raised. \end_layout \end_inset @@ -5501,27 +5289,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +A valid Car object \end_layout \end_inset @@ -5530,7 +5298,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns true if the Car is available, false otherwise. \end_layout \end_inset diff --git a/3.Integration Test Plan Document/res/img/Reservation Management 1.png b/3.Integration Test Plan Document/res/img/Reservation Management 1.png index fb735258280348de5ef46f6c07332475e11021c6..8dee1b0ab7e57580faa637fa8b690a3d63821cfc 100644 GIT binary patch literal 49405 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 Gk-nXj!uaKP?|Wd*SqzJ#D#duv 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 literal 49161 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 HHX!BS168Rs diff --git a/3.Integration Test Plan Document/res/img/Reservation Management 2.png b/3.Integration Test Plan Document/res/img/Reservation Management 2.png index c48af03ee638a2c4b1a232ae5851e1de3f4a1e0e..41dc613838d3a4426da8499d9a15bd9580c04a67 100644 GIT binary patch literal 47789 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

R9Jj=BT$euce_tnPAVN4Yr%s-PaZoE?R^B^v0B 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 literal 47527 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 From aee00293ee66be9e6c3827f898c6e1624e3cb00e Mon Sep 17 00:00:00 2001 From: Francesco Rinaldi Date: Wed, 11 Jan 2017 19:32:50 +0100 Subject: [PATCH 12/12] End of section 3 --- 2.Design Document/DD.lyx | 32 +- 3.Integration Test Plan Document/ITPD.lyx | 1486 +++++++++++---------- 2 files changed, 785 insertions(+), 733 deletions(-) diff --git a/2.Design Document/DD.lyx b/2.Design Document/DD.lyx index 6cbf300..e22add0 100644 --- a/2.Design Document/DD.lyx +++ b/2.Design Document/DD.lyx @@ -3934,7 +3934,7 @@ In this way we would achieve our goal to distribute cars in the smartest \end_layout \begin_layout Subsection -How to calculate the Reservation fees +How to apply the Reservation fees \end_layout \begin_layout Standard @@ -3943,7 +3943,7 @@ In this section we will analyze the structure of the code that will handle \end_layout \begin_layout Subparagraph* -calculateReservationFees(Reservation) +applyReservationFees(Reservation) \end_layout \begin_layout Standard @@ -3969,16 +3969,16 @@ begin{lstlisting} \begin_layout Plain Layout -/* This function will calculate the fees for each reservation entity. - Actually, the user can terminate a reservation for free, but in the future +/* This function will apply the fees for each Reservation entity. + Actually, the user can terminate a reservation for free, but in the future if PowerEnjoy would decide to apply a fee for the termination of a reservation, - it would be very easy to modify this function. - If the user pick up the car, his reservation terminates and the system - will create another object 'rent': no fees will be applied to transform - a reservation into a rent. - On the other hand, if the reservation expires before the user pick up the - car, the system will apply to him a fee of one euro. - As said before, it would not be difficult in the future also to change + it would be very easy to modify this value. + If the user picks up the car, his reservation terminates and the system + will create another object Rent: no fees will be applied to transform a + reservation into a rent. + On the other hand, if the reservation expires before the user picks up + the car, the system will apply to him a fee of one euro. + As said before, it would not be difficult in the future also to change this amount of money. \end_layout @@ -3993,7 +3993,7 @@ begin{lstlisting} \begin_layout Plain Layout -function calculateReservationFees (Reservation res){ +function applyReservationFees (Reservation res){ \end_layout \begin_layout Plain Layout @@ -4304,7 +4304,7 @@ end{lstlisting} \end_layout \begin_layout Subparagraph* -calculateAdditionalFee(Rent) +calculateAdditionalFees(Rent) \end_layout \begin_layout Standard @@ -4340,7 +4340,7 @@ begin{lstlisting} \begin_layout Plain Layout -void function calculateAdditionalFee(Rent ren){ +void function calculateAdditionalFees(Rent ren){ \end_layout \begin_layout Plain Layout @@ -4427,7 +4427,7 @@ begin{lstlisting} \begin_layout Plain Layout -/* This function will calculate the fees for each rent entity. +/* This function will calculate the fees for each Rent entity. In this case we have to consider eventual discounts and other additional fees before sending the payment request to the external payment service. It would not be difficult in the future to change some parameters according @@ -4481,7 +4481,7 @@ function calculateRentFees (Rent ren){ \begin_layout Plain Layout - calculateAdditionalFee(ren); + calculateAdditionalFees(ren); \end_layout \begin_layout Plain Layout diff --git a/3.Integration Test Plan Document/ITPD.lyx b/3.Integration Test Plan Document/ITPD.lyx index 153e9c2..4780130 100644 --- a/3.Integration Test Plan Document/ITPD.lyx +++ b/3.Integration Test Plan Document/ITPD.lyx @@ -4847,7 +4847,7 @@ A response from the Car is received. \begin_layout Plain Layout \family typewriter -carsInRadius(User) +carsInRadius(Location) \end_layout \end_inset @@ -4879,7 +4879,7 @@ Description \begin_inset Text \begin_layout Plain Layout -This function retrieves all the cars near the User location. +This function retrieves all the cars near the Location passed as argument. \end_layout \end_inset @@ -4954,7 +4954,7 @@ An InvalidArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A valid User object +A valid Location object \end_layout \end_inset @@ -4963,7 +4963,7 @@ A valid User object \begin_inset Text \begin_layout Plain Layout -A list of cars near the User. +Returns a list of cars around the Location. \end_layout \end_inset @@ -5139,7 +5139,7 @@ A valid User object \begin_inset Text \begin_layout Plain Layout -The current position of the user is returned. +A Location object is returned representing the current position of the user. \end_layout \end_inset @@ -5182,7 +5182,7 @@ The current position of the user is returned. \begin_layout Plain Layout \family typewriter -isAvailable(Car) +getAvailableCars(Location) \end_layout \end_inset @@ -5214,7 +5214,7 @@ Description \begin_inset Text \begin_layout Plain Layout -This function check whether the Car is available. +This function return a list of available cars near the user's Location. \end_layout \end_inset @@ -5289,7 +5289,7 @@ An InvalidArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A valid Car object +A valid Location object \end_layout \end_inset @@ -5298,7 +5298,7 @@ A valid Car object \begin_inset Text \begin_layout Plain Layout -Returns true if the Car is available, false otherwise. +Returns a list of available cars near the Location. \end_layout \end_inset @@ -5341,7 +5341,7 @@ Main functions implemented by the \align center \begin_inset Tabular - + @@ -5350,7 +5350,7 @@ Main functions implemented by the \begin_layout Plain Layout \family typewriter -checkUserPosition(User) +getUserPosition(User) \end_layout \end_inset @@ -5362,12 +5362,12 @@ checkUserPosition(User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5378,11 +5378,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will retrieve the information about the user’s position through + the Google Maps API. \end_layout \end_inset @@ -5395,7 +5396,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5413,7 +5414,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5422,13 +5423,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5437,7 +5458,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid User object \end_layout \end_inset @@ -5446,7 +5467,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A Location object is returned representing the current position of the user. \end_layout \end_inset @@ -5480,7 +5501,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5489,7 +5510,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -isReservable(Car, User) +getReservableCars(Location) \end_layout \end_inset @@ -5501,12 +5522,12 @@ isReservable(Car, User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5517,11 +5538,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function return a list of reservable cars near the user's Location. \end_layout \end_inset @@ -5534,7 +5555,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5552,7 +5573,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5561,13 +5582,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5576,7 +5617,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Location object \end_layout \end_inset @@ -5585,7 +5626,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns a list of reservable cars near the Location. \end_layout \end_inset @@ -5619,7 +5660,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5628,7 +5669,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -isTerminable(Car, User) +isTerminable(Reservation) \end_layout \end_inset @@ -5640,12 +5681,12 @@ isTerminable(Car, User) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5656,11 +5697,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will check if all the conditions to end the reservation are + respected. \end_layout \end_inset @@ -5673,7 +5715,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5691,7 +5733,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5700,13 +5742,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5715,7 +5777,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Reservation object \end_layout \end_inset @@ -5724,7 +5786,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns true if the reservation is terminable, false otherwise. \end_layout \end_inset @@ -5758,7 +5820,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5767,7 +5829,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -startReservation(Car) +isTerminable(Rent) \end_layout \end_inset @@ -5779,12 +5841,12 @@ startReservation(Car) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5795,11 +5857,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will check if all the conditions to end the rent are respected + (for example if nobody is still in the car, and so on..).. \end_layout \end_inset @@ -5812,7 +5875,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5830,7 +5893,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5839,13 +5902,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5854,7 +5937,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Rent object \end_layout \end_inset @@ -5863,7 +5946,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns true if the rent is terminable, false otherwise. \end_layout \end_inset @@ -5897,7 +5980,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -5906,7 +5989,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -updateReservation(Reservation) +startReservation(Car, User) \end_layout \end_inset @@ -5918,12 +6001,12 @@ updateReservation(Reservation) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -5934,11 +6017,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function creates a new instance of Reservation, tying together the + Car and User object passed as argument. \end_layout \end_inset @@ -5951,7 +6035,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -5969,7 +6053,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -5978,13 +6062,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -5993,7 +6097,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +Valid User and Car objects \end_layout \end_inset @@ -6002,7 +6106,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A new instance of Reservation is correctly created. \end_layout \end_inset @@ -6036,7 +6140,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -6057,12 +6161,12 @@ endReservation(Reservation) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -6073,11 +6177,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function terminates the current Reservation. \end_layout \end_inset @@ -6090,7 +6194,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -6108,7 +6212,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -6117,13 +6221,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -6132,7 +6256,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Reservation object \end_layout \end_inset @@ -6141,7 +6265,11 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The state of the Reservation object is changed into +\shape italic +terminated +\shape default +, and the reservation is no more active. \end_layout \end_inset @@ -6175,424 +6303,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -startRent(Rent) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -updateRent(Rent) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -endRent(Rent) -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - + @@ -6613,12 +6324,12 @@ checkReservationStatus(Reservation) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -6629,11 +6340,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function retrieves all the information about the Reservation object + passed as argument. \end_layout \end_inset @@ -6646,7 +6358,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -6664,7 +6376,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -6673,13 +6385,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -6688,7 +6420,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Reservation object \end_layout \end_inset @@ -6697,7 +6429,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns the current status of the Reservation. \end_layout \end_inset @@ -6731,7 +6463,330 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +startRent(Reservation) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function creates a new instance of Rent, updating the Reservation object + passed as argument. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A valid Reservation object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A new instance of Rent is correctly created. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\family typewriter +endRent(Rent) +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +\begin_inset Tabular + + + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\series bold +Description +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +This function terminates the current Rent. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Input Specification +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout + +\shape slanted +Effect +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A null parameter +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +A NullArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +A valid Rent object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +The state of the Rent object is changed into +\shape italic +terminated +\shape default +, and the rent is no more active. +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\end_inset + + + + +\end_inset + + +\end_layout + +\begin_layout Standard +\begin_inset VSpace smallskip +\end_inset + + +\end_layout + +\begin_layout Standard +\align center +\begin_inset Tabular + + @@ -6752,12 +6807,12 @@ checkRentStatus(Rent) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -6768,11 +6823,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function retrieves all the information about the Rent object passed + as argument. \end_layout \end_inset @@ -6785,7 +6841,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -6803,7 +6859,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -6812,13 +6868,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -6827,7 +6903,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Rent object \end_layout \end_inset @@ -6836,7 +6912,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +Returns the current status of the Rent. \end_layout \end_inset @@ -6883,7 +6959,7 @@ Main functions implemented by the \align center \begin_inset Tabular - + @@ -6904,12 +6980,12 @@ notify(User, Notification) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -6920,11 +6996,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function notifies a message to the user. \end_layout \end_inset @@ -6937,7 +7013,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -6955,7 +7031,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -6964,13 +7040,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -6979,7 +7075,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +Valid User and Notification objects \end_layout \end_inset @@ -6988,7 +7084,7 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The Notification is correctly displayed to the User. \end_layout \end_inset @@ -7021,9 +7117,6 @@ Main functions implemented by the Payment Manager \series default : -\end_layout - -\begin_layout Standard \begin_inset VSpace smallskip \end_inset @@ -7034,7 +7127,7 @@ Main functions implemented by the \align center \begin_inset Tabular - + @@ -7043,7 +7136,7 @@ Main functions implemented by the \begin_layout Plain Layout \family typewriter -calculateReservationFees(Reservation) +applyReservationFees(Reservation) \end_layout \end_inset @@ -7055,12 +7148,12 @@ calculateReservationFees(Reservation) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -7071,11 +7164,20 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will apply the fees for each Reservation entity. + Actually, the user can terminate a reservation for free, but in the future + if PowerEnjoy would decide to apply a fee for the termination of a reservation, + it would be very easy to modify this value. + If the user picks up the car, his reservation terminates and the system + will create another object Rent: no fees will be applied to transform a + reservation into a rent. + On the other hand, if the reservation expires before the user picks up + the car, the system will apply to him a fee of one euro. + \end_layout \end_inset @@ -7088,7 +7190,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -7106,7 +7208,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -7115,13 +7217,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -7130,7 +7252,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Reservation object \end_layout \end_inset @@ -7139,7 +7261,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +A payment request to an external service is successfully sent for the User + related to the current Reservation. \end_layout \end_inset @@ -7173,7 +7296,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -7182,7 +7305,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -calculateRentFees(Rent) +calculateRentFees(Rent) \end_layout \end_inset @@ -7194,12 +7317,12 @@ calculateRentFees(Rent) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -7210,11 +7333,15 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will calculate the fees for each Rent entity. + In this case we have to consider eventual discounts and other additional + fees before sending the payment request to the external payment service. + It would not be difficult in the future to change some parameters according + to the PowerEnjoy policy. \end_layout \end_inset @@ -7227,7 +7354,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -7245,7 +7372,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -7254,13 +7381,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -7269,7 +7416,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Rent object \end_layout \end_inset @@ -7278,7 +7425,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +This function first update the total cost of the Rent and then send a payment + request to an external service for the User related to the current Rent. \end_layout \end_inset @@ -7312,7 +7460,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -7321,7 +7469,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -calculateRentDiscount(Rent) +calculateRentDiscount(Rent) \end_layout \end_inset @@ -7333,12 +7481,12 @@ calculateRentDiscount(Rent) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -7349,11 +7497,11 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will calculate the eventual discount for each rent entity. \end_layout \end_inset @@ -7366,7 +7514,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -7384,7 +7532,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -7393,13 +7541,33 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout A NullArgumentException is raised. \end_layout +\end_inset + + + + +\begin_inset Text + +\begin_layout Plain Layout +An invalid object +\end_layout + +\end_inset + + +\begin_inset Text + +\begin_layout Plain Layout +An InvalidArgumentException is raised. +\end_layout + \end_inset @@ -7408,7 +7576,7 @@ A NullArgumentException is raised. \begin_inset Text \begin_layout Plain Layout -A non-null user +A valid Rent object \end_layout \end_inset @@ -7417,7 +7585,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The total cost of the Rent will be successfully updated according to the + eventual discounts. \end_layout \end_inset @@ -7451,7 +7620,7 @@ The user data are correctly inserted in the database. \align center \begin_inset Tabular - + @@ -7460,7 +7629,7 @@ The user data are correctly inserted in the database. \begin_layout Plain Layout \family typewriter -calculateAdditionalFee(Rent) +calculateAdditionalFees(Rent) \end_layout \end_inset @@ -7472,12 +7641,12 @@ calculateAdditionalFee(Rent) \begin_layout Plain Layout \begin_inset Tabular - + - - + + - + \begin_inset Text \begin_layout Plain Layout @@ -7488,11 +7657,12 @@ Description \end_inset - + \begin_inset Text \begin_layout Plain Layout -This is a cool description +This function will calculate the eventual additional fees for each rent + entity. \end_layout \end_inset @@ -7505,7 +7675,7 @@ This is a cool description \begin_layout Plain Layout \shape slanted -Input +Input Specification \end_layout \end_inset @@ -7523,7 +7693,7 @@ Effect - + \begin_inset Text \begin_layout Plain Layout @@ -7532,7 +7702,7 @@ A null parameter \end_inset - + \begin_inset Text \begin_layout Plain Layout @@ -7543,119 +7713,20 @@ A NullArgumentException is raised. - + \begin_inset Text \begin_layout Plain Layout -A non-null user +An invalid object \end_layout \end_inset - + \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\end_inset - - - - -\end_inset - - -\end_layout - -\begin_layout Standard -\begin_inset VSpace smallskip -\end_inset - - -\end_layout - -\begin_layout Standard -\align center -\begin_inset Tabular - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\family typewriter -contactPaymentService() -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -\begin_inset Tabular - - - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\series bold -Description -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -This is a cool description -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Input -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout - -\shape slanted -Effect +An InvalidArgumentException is raised. \end_layout \end_inset @@ -7666,27 +7737,7 @@ Effect \begin_inset Text \begin_layout Plain Layout -A null parameter -\end_layout - -\end_inset - - -\begin_inset Text - -\begin_layout Plain Layout -A NullArgumentException is raised. -\end_layout - -\end_inset - - - - -\begin_inset Text - -\begin_layout Plain Layout -A non-null user +A valid Rent object \end_layout \end_inset @@ -7695,7 +7746,8 @@ A non-null user \begin_inset Text \begin_layout Plain Layout -The user data are correctly inserted in the database. +The total cost of the Rent will be successfully updated according to the + eventual additional fees. \end_layout \end_inset