From 34ef8b048fc27e7419caeb8de0ef070dd2caa6a3 Mon Sep 17 00:00:00 2001 From: Michael Joseph Date: Wed, 14 May 2003 10:39:10 +0000 Subject: [PATCH] added ArchiveSettings class and test --- lib/documentmanagement/ArchiveSettings.inc | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/documentmanagement/ArchiveSettings.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 288 insertions(+), 0 deletions(-) create mode 100644 lib/documentmanagement/ArchiveSettings.inc create mode 100644 tests/documentmanagement/ArchiveSettings.php diff --git a/lib/documentmanagement/ArchiveSettings.inc b/lib/documentmanagement/ArchiveSettings.inc new file mode 100644 index 0000000..79a5c03 --- /dev/null +++ b/lib/documentmanagement/ArchiveSettings.inc @@ -0,0 +1,212 @@ +, Jam Warehouse (Pty) Ltd, South Africa + * @package lib.dashboard + */ + +class ArchiveSettings { + + /** + * The primary key + */ + var $iId; + /** + * The document ID + */ + var $iDocumentID; + /** + * The expiration date + */ + var $dExpirationDate; + /** + * The utilisation threshold + */ + var $iUtilisationThreshold; + + /** + * Constructs an archive settings instance + * + * @param integer the document id + * @param date the expiration date + * @param integer the utilisation threshold + */ + function ArchiveSettings($iNewDocumentID, $dNewExpirationDate, $iNewUtilisationThreshold) { + global $default; + + // primary key not set as this is not stored yet + $this->iId = -1; + $this->iDocumentID = $iNewDocumentID; + $this->dExpirationDate = $dNewExpirationDate; + $this->iUtilisationThreshold = $iNewUtilisationThreshold; + } + + /** + * Gets the primary key + */ + function getID(){ + return $this->iId; + } + + /** + * Gets the document id + */ + function getDocumentID(){ + return $this->iDocumentID; + } + + /** + * Sets the document id + * + * @param string the new document id + */ + function setDocumentID($iNewDocumentID){ + $this->iDocumentID = $iNewDocumentID; + } + + /** + * Gets the expiration date + */ + function getExpirationDate(){ + return $this->dExpirationDate; + } + + /** + * Sets the expiration date + * + * @param date the new expiration date + */ + function setExpirationDate($dNewExpirationDate){ + $this->dExpirationDate = $dNewExpirationDate; + } + + /** + * Gets the utilisation threshold + */ + function getUtilisationThreshold(){ + return $this->iUtilisationThreshold; + } + + /** + * Sets the utilisation threshold + * + * @param integer the utilisation threshold + */ + function setUtilisationThreshold($iNewUtilisationThreshold){ + $this->iUtilisationThreshold = $iNewUtilisationThreshold; + } + + /** + * Inserts the archive settings into the database + * + * @return boolean true on successful update, false otherwise + */ + function create(){ + global $default; + //if the id >= 0, then the object has already been created + if ($this->iId < 0) { + $sql = $default->db; + $result = $sql->query("INSERT INTO $default->owl_archive_settings_table (document_id, expiration_date, utilisation_threshold) " . + "VALUES ($this->iDocumentID, '$this->dExpirationDate', $this->iUtilisationThreshold)"); + if ($result) { + //set the current primary key + $this->iId = $sql->insert_id(); + return true; + } + return false; + } + return false; + } + + /** + * Update the archive settings current values in the database + * + * @return boolean true on successful update, false otherwise + */ + function update(){ + global $default; + if ($this->iId >= 0) { + $sql = $default->db; + $sQuery = "UPDATE " . $default->owl_archive_settings_table . " SET " . + "document_id = " . $this->iDocumentID . ", " . + "expiration_date = '" . $this->dExpirationDate . "', " . + "utilisation_theshold = $this->iUtilisationThreshold)" . + "WHERE id = $this->iId"; + $result = $sql->query($sQuery); + if ($result) { + return true; + } + return false; + } + return false; + } + + /** + * Delete the current archive settings from the database. Set the primary key to -1 + * on successful deletion + * + * @return boolean true and reset id to -1 on successful deletion, false otherwise + */ + function delete() { + global $default; + if ($this->iId >= 0) { + $sql = $default->db; + $result = $sql->query("DELETE FROM " . $default->owl_archive_settings_table . " WHERE id = $this->iId"); + if ($result) { + $this->iId = -1; + return true; + } + return false; + } + return false; + } + + /** + * Static function. Given a news item primary key will create + * a ArchiveSettings object and populate it with the corresponding + * database values + * + * @return ArchiveSettings populated ArchiveSettings object on success, false otherwise + */ + function & get($iArchiveSettingsID) { + global $default; + $sql = $default->db; + $sql->query("SELECT * FROM $default->owl_archive_settings_table WHERE id = $iArchiveSettingsID"); + if ($sql->next_record()) { + $oArchiveSettings = & new ArchiveSettings($sql->f("document_id"), $sql->f("expiration_date"), $sql->f("utilisation_threshold")); + $oArchiveSettings->iId = $iArchiveSettingsID; + return $oArchiveSettings; + } + return false; + } + + /** + * Static function + * Get a list of ArchiveSettings objects + * + * @param String Where clause (optional) + * @return Array array of ArchiveSettings objects, false otherwise + */ + function getList($sWhereClause = null) { + global $default; + $aArchiveSettingsArray = array(); + $sql = $default->db; + $result = $sql->query("SELECT * FROM " . $default->owl_archive_settings_table . (isset($sWhereClause) ? " WHERE " . $sWhereClause : "")); + if ($result) { + $iCount = 0; + while ($sql->next_record()) { + $oArchiveSettings = & ArchiveSettings::get($sql->f("id")); + $aArchiveSettingsArray[$iCount++] = $oArchiveSettings; + } + return $aArchiveSettingsArray; + } + return false; + } +} \ No newline at end of file diff --git a/tests/documentmanagement/ArchiveSettings.php b/tests/documentmanagement/ArchiveSettings.php new file mode 100644 index 0000000..a41d0e7 --- /dev/null +++ b/tests/documentmanagement/ArchiveSettings.php @@ -0,0 +1,76 @@ +fileSystemRoot/lib/documentmanagement/ArchiveSettings.inc"); +echo "
";	
+//test creation of archive settings
+echo "Testing archive settings creation
"; +$oArchiveSettings = & new ArchiveSettings(6, "2003-06-14", -1); +if (isset($oArchiveSettings)) { + echo "Passed archive settings creation test

"; + + echo "Testing setting and getting of values
"; + + echo "Current document ID: " . $oArchiveSettings->getDocumentID() . "
"; + echo "Setting document ID to: 5
"; + $oArchiveSettings->setDocumentID(5); + echo "New document id: " . $oArchiveSettings->getDocumentID() . "

"; + + echo "Current expiration date: " . $oArchiveSettings->getExpirationDate() . "
"; + echo "Setting expiration date to: '2003-07-14'
"; + $oArchiveSettings->setExpirationDate("2003-07-14"); + echo "New expiration date: " . $oArchiveSettings->getExpirationDate() . "

"; + + echo "Current utilisation threshold : " . $oArchiveSettings->getUtilisationThreshold() . "
"; + echo "Setting expiration date to: '2003-07-14'
"; + $oArchiveSettings->setExpirationDate("2003-07-14"); + echo "New expiration date: " . $oArchiveSettings->getExpirationDate() . "

"; + + echo "Testing archive settings storage
"; + if ($oArchiveSettings->create()) { + echo "Passed archive settings storage test

"; + + echo "Testing archive settings retrieval
"; + $oNewArchiveSettings = ArchiveSettings::get(1); + if ($oNewArchiveSettings) { + echo "Passed archive settings retrieval test:" . arrayToString($oNewArchiveSettings) . "
"; + } else { + echo "Failed archive settings retrieval test.
"; + } + + echo "Testing archive settings array retrieval
"; + $aArchiveSettings = ArchiveSettings::getList(); + echo "Archive Settings array=" . arrayToString($aArchiveSettings) . "

"; + + echo "Testing archive settings deletion
"; + if ($oArchiveSettings->delete()) { + echo "Passed archive settings deletion test
"; + } else { + echo "Failed archive settings deletion test"; + } + } else { + echo "Failed archive settings storage test
"; + echo "Tests NOT run: (a)archive settings deletion
"; + } +} else { + echo "Failed archive settings creation test
"; + echo "Tests NOT run: (a)getting and setting (b)archive settings storage (c)archive settings deletion
"; +} +echo "
"; + +?> -- libgit2 0.21.4