diff --git a/Controller/ApiController.php b/Controller/ApiController.php new file mode 100644 index 0000000..23e49ab --- /dev/null +++ b/Controller/ApiController.php @@ -0,0 +1,845 @@ +validateAccountCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate account create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateAccountCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create account from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createAccountFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an account + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiAccountUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateAccountUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate account update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateAccountUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update account from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateAccountFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an cost center + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiCostCenterCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateCostCenterCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate cost center create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateCostCenterCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create cost center from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createCostCenterFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an cost center + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiCostCenterUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateCostCenterUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate cost center update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateCostCenterUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update cost center from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateCostCenterFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an cost object + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiCostObjectCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateCostObjectCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate cost object create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateCostObjectCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create cost object from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createCostObjectFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an cost object + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiCostObjectUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateCostObjectUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate cost object update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateCostObjectUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update cost object from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateCostObjectFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateEntryCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate entry create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateEntryCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateEntryUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate entry update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateEntryUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an recurring entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiRecurringEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateRecurringEntryCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate recurring entry create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateRecurringEntryCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create recurring entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createRecurringEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an recurring entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiRecurringEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateRecurringEntryUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate recurring entry update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateRecurringEntryUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update recurring entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateRecurringEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an tax key + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiTaxKeyCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateTaxKeyCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate tax key create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateTaxKeyCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create tax key from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createTaxKeyFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an tax key + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiTaxKeyUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateTaxKeyUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate tax key update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateTaxKeyUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update tax key from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateTaxKeyFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to create an batch entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiBatchEntryCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateBatchEntryCreate($request))) { + $response->set('account_create', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate batch entry create request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateBatchEntryCreate(RequestAbstract $request) : array + { + $val = []; + if (($val['name'] = empty($request->getData('name'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to create batch entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function createBatchEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } + + /** + * Api method to update an batch entry + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return void + * + * @api + * + * @since 1.0.0 + */ + public function apiBatchEntryUpdate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void + { + if (!empty($val = $this->validateBatchEntryUpdate($request))) { + $response->set('account_update', new FormValidation($val)); + $response->header->status = RequestStatusCode::R_400; + + return; + } + } + + /** + * Validate batch entry update request + * + * @param RequestAbstract $request Request + * + * @return array + * + * @since 1.0.0 + */ + private function validateBatchEntryUpdate(RequestAbstract $request) : array + { + $val = []; + if (($val['id'] = empty($request->getData('id'))) + || ($val['status'] = false) + ) { + return $val; + } + + return []; + } + + /** + * Method to update batch entry from request. + * + * @param RequestAbstract $request Request + * + * @return mixed + * + * @since 1.0.0 + */ + private function updateBatchEntryFromRequest(RequestAbstract $request) : mixed + { + return null; + } +} diff --git a/Controller/BackendController.php b/Controller/BackendController.php index 27968f5..c068d4a 100755 --- a/Controller/BackendController.php +++ b/Controller/BackendController.php @@ -242,6 +242,69 @@ final class BackendController extends Controller return $view; } + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewCostCenterProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response)); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewImpersonalEntries(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response)); + + return $view; + } + + /** + * Routing end-point for application behaviour. + * + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @codeCoverageIgnore + */ + public function viewPersonalEntries(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app->l11nManager, $request, $response); + $view->setTemplate('/Modules/Accounting/Theme/Backend/gl-profile'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1002604001, $request, $response)); + + return $view; + } + /** * Routing end-point for application behaviour. * diff --git a/Models/AccountAbstract.php b/Models/AccountAbstract.php index 1ce8868..50d7c27 100755 --- a/Models/AccountAbstract.php +++ b/Models/AccountAbstract.php @@ -32,6 +32,14 @@ abstract class AccountAbstract */ protected int $id = 0; + /** + * Summary account. + * + * @var null|int + * @since 1.0.0 + */ + public ?int $summaryAccount = null; + /** * Type. * @@ -48,18 +56,6 @@ abstract class AccountAbstract */ protected array $entries = []; - /** - * Constructor. - * - * @param int $id Account ID - * - * @since 1.0.0 - */ - public function __construct(int $id = 0) - { - $this->id = $id; - } - /** * Get account id. * @@ -90,14 +86,14 @@ abstract class AccountAbstract * Get entry. * * @param \DateTime $start Interval start - * @param \DateTime $end Interval end + * @param null|\DateTime $end Interval end * @param int $dateType Date type by witch the entries should be filtered * * @return array * * @since 1.0.0 */ - public function getEntriesByDate(\DateTime $start, \DateTime $end, int $dateType = TimeRangeType::RECEIPT_DATE) : array + public function getEntriesByDate(\DateTime $start, \DateTime $end = null, int $dateType = TimeRangeType::RECEIPT_DATE) : array { return []; } diff --git a/Models/Balance.php b/Models/Balance.php index 92dba04..b6e2f3a 100755 --- a/Models/Balance.php +++ b/Models/Balance.php @@ -30,7 +30,7 @@ class Balance * @var int * @since 1.0.0 */ - private int $id = 0; + protected int $id = 0; /** * Balance data. @@ -41,20 +41,22 @@ class Balance private array $balance = []; /** - * Balance name. + * Localization. * - * @var string + * @var BalanceL11n * @since 1.0.0 */ - public string $name = ''; + public BalanceL11n $l11n; /** - * Balance description. + * Constructor. * - * @var string * @since 1.0.0 */ - private string $description = ''; + public function __construct() + { + $this->l11n = new BalanceL11n(); + } /** * Get balance id @@ -67,30 +69,4 @@ class Balance { return $this->id; } - - /** - * Set description - * - * @param string $description Balance description - * - * @return void - * - * @since 1.0.0 - */ - public function setDescription(string $description) : void - { - $this->description = $description; - } - - /** - * Get description - * - * @return string - * - * @since 1.0.0 - */ - public function getDescription() : string - { - return $this->description; - } } diff --git a/Models/BalanceL11n.php b/Models/BalanceL11n.php new file mode 100644 index 0000000..74b2a2c --- /dev/null +++ b/Models/BalanceL11n.php @@ -0,0 +1,129 @@ +id; + } + + /** + * Get language + * + * @return string + * + * @since 1.0.0 + */ + public function getLanguage() : string + { + return $this->language; + } + + /** + * Set language + * + * @param string $language Language + * + * @return void + * + * @since 1.0.0 + */ + public function setLanguage(string $language) : void + { + $this->language = $language; + } + + /** + * {@inheritdoc} + */ + public function toArray() : array + { + return [ + 'id' => $this->id, + 'name' => $this->name, + 'description' => $this->description, + 'balance' => $this->balance, + 'language' => $this->language, + ]; + } + + /** + * {@inheritdoc} + */ + public function jsonSerialize() + { + return $this->toArray(); + } +} diff --git a/Models/BatchPosting.php b/Models/BatchPosting.php index 07a172e..5d694ba 100755 --- a/Models/BatchPosting.php +++ b/Models/BatchPosting.php @@ -30,7 +30,7 @@ class BatchPosting implements \Countable * @var int * @since 1.0.0 */ - private int $id = 0; + protected int $id = 0; /** * Creator. @@ -38,7 +38,7 @@ class BatchPosting implements \Countable * @var int * @since 1.0.0 */ - private int $creator = 0; + public int $creator = 0; /** * Created. @@ -46,7 +46,7 @@ class BatchPosting implements \Countable * @var \DateTimeImmutable * @since 1.0.0 */ - private \DateTimeImmutable $created; + public \DateTimeImmutable $created; /** * Description. @@ -54,7 +54,7 @@ class BatchPosting implements \Countable * @var string * @since 1.0.0 */ - private string $description = ''; + public string $description = ''; /** * Postings. @@ -86,70 +86,6 @@ class BatchPosting implements \Countable return $this->id; } - /** - * Get description. - * - * @return string - * - * @since 1.0.0 - */ - public function getDescription() : string - { - return $this->description; - } - - /** - * Set description. - * - * @param string $desc Description - * - * @return void - * - * @since 1.0.0 - */ - public function setDescription(string $desc) : void - { - $this->description = $desc; - } - - /** - * Get created. - * - * @return \DateTimeImmutable - * - * @since 1.0.0 - */ - public function getCreatedAt() : \DateTimeImmutable - { - return $this->created; - } - - /** - * Get creator. - * - * @return int - * - * @since 1.0.0 - */ - public function getCreator() - { - return $this->creator; - } - - /** - * Set creator. - * - * @param int $creator Creator ID - * - * @return void - * - * @since 1.0.0 - */ - public function setCreator($creator) : void - { - $this->creator = $creator; - } - /** * Get posting. * diff --git a/Models/CostCenter.php b/Models/CostCenter.php index 6af0fbb..b6bae7f 100755 --- a/Models/CostCenter.php +++ b/Models/CostCenter.php @@ -43,10 +43,10 @@ class CostCenter /** * Localization. * - * @var L11nCostCenter + * @var CostCenterL11n * @since 1.0.0 */ - public L11nCostCenter $l11n; + public CostCenterL11n $l11n; /** * Parent. @@ -63,7 +63,7 @@ class CostCenter */ public function __construct() { - $this->l11n = new L11nCostCenter(); + $this->l11n = new CostCenterL11n(); } /** diff --git a/Models/L11nCostCenter.php b/Models/CostCenterL11n.php old mode 100755 new mode 100644 similarity index 79% rename from Models/L11nCostCenter.php rename to Models/CostCenterL11n.php index a5e5ee2..bfd327e --- a/Models/L11nCostCenter.php +++ b/Models/CostCenterL11n.php @@ -25,7 +25,7 @@ use phpOMS\Localization\ISO639x1Enum; * @link https://orange-management.org * @since 1.0.0 */ -class L11nCostCenter implements \JsonSerializable, ArrayableInterface +class CostCenterL11n implements \JsonSerializable, ArrayableInterface { /** * Article ID. @@ -41,7 +41,7 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface * @var int * @since 1.0.0 */ - protected int $costcenter = 0; + public int $costcenter = 0; /** * Language. @@ -79,32 +79,6 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface return $this->id; } - /** - * Set costcenter. - * - * @param int $costcenter CostCenter id - * - * @return void - * - * @since 1.0.0 - */ - public function setCostCenter(int $costcenter) : void - { - $this->costcenter = $costcenter; - } - - /** - * Get costcenter - * - * @return int - * - * @since 1.0.0 - */ - public function getCostCenter() : int - { - return $this->costcenter; - } - /** * Get language * @@ -139,6 +113,7 @@ class L11nCostCenter implements \JsonSerializable, ArrayableInterface return [ 'id' => $this->id, 'name' => $this->name, + 'description' => $this->description, 'costcenter' => $this->costcenter, 'language' => $this->language, ]; diff --git a/Models/L11nCostCenterMapper.php b/Models/CostCenterL11nMapper.php old mode 100755 new mode 100644 similarity index 96% rename from Models/L11nCostCenterMapper.php rename to Models/CostCenterL11nMapper.php index eeb63c9..55c96f0 --- a/Models/L11nCostCenterMapper.php +++ b/Models/CostCenterL11nMapper.php @@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract; * @link https://orange-management.org * @since 1.0.0 */ -final class L11nCostCenterMapper extends DataMapperAbstract +final class CostCenterL11nMapper extends DataMapperAbstract { /** * Columns. diff --git a/Models/CostCenterMapper.php b/Models/CostCenterMapper.php index 23efa35..c97986f 100755 --- a/Models/CostCenterMapper.php +++ b/Models/CostCenterMapper.php @@ -45,7 +45,7 @@ final class CostCenterMapper extends DataMapperAbstract */ protected static array $hasMany = [ 'l11n' => [ - 'mapper' => L11nCostCenterMapper::class, + 'mapper' => CostCenterL11nMapper::class, 'table' => 'accounting_costcenter_l11n', 'self' => 'accounting_costcenter_l11n_costcenter', 'conditional' => true, diff --git a/Models/CostObject.php b/Models/CostObject.php index 6148c6d..f759d65 100755 --- a/Models/CostObject.php +++ b/Models/CostObject.php @@ -43,10 +43,10 @@ class CostObject /** * Localization. * - * @var L11nCostObject + * @var CostObjectL11n * @since 1.0.0 */ - public L11nCostObject $l11n; + public CostObjectL11n $l11n; /** * Parent. @@ -63,7 +63,7 @@ class CostObject */ public function __construct() { - $this->l11n = new L11nCostObject(); + $this->l11n = new CostObjectL11n(); } /** diff --git a/Models/L11nCostObject.php b/Models/CostObjectL11n.php old mode 100755 new mode 100644 similarity index 79% rename from Models/L11nCostObject.php rename to Models/CostObjectL11n.php index 8273dd4..2daa7d4 --- a/Models/L11nCostObject.php +++ b/Models/CostObjectL11n.php @@ -25,7 +25,7 @@ use phpOMS\Localization\ISO639x1Enum; * @link https://orange-management.org * @since 1.0.0 */ -class L11nCostObject implements \JsonSerializable, ArrayableInterface +class CostObjectL11n implements \JsonSerializable, ArrayableInterface { /** * Article ID. @@ -41,7 +41,7 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface * @var int * @since 1.0.0 */ - protected int $costobject = 0; + public int $costobject = 0; /** * Language. @@ -79,32 +79,6 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface return $this->id; } - /** - * Set costobject. - * - * @param int $costobject CostObject id - * - * @return void - * - * @since 1.0.0 - */ - public function setCostObject(int $costobject) : void - { - $this->costobject = $costobject; - } - - /** - * Get costobject - * - * @return int - * - * @since 1.0.0 - */ - public function getCostObject() : int - { - return $this->costobject; - } - /** * Get language * @@ -139,6 +113,7 @@ class L11nCostObject implements \JsonSerializable, ArrayableInterface return [ 'id' => $this->id, 'name' => $this->name, + 'description' => $this->description, 'costobject' => $this->costobject, 'language' => $this->language, ]; diff --git a/Models/L11nCostObjectMapper.php b/Models/CostObjectL11nMapper.php old mode 100755 new mode 100644 similarity index 96% rename from Models/L11nCostObjectMapper.php rename to Models/CostObjectL11nMapper.php index 355d6fb..4b7a8c5 --- a/Models/L11nCostObjectMapper.php +++ b/Models/CostObjectL11nMapper.php @@ -24,7 +24,7 @@ use phpOMS\DataStorage\Database\DataMapperAbstract; * @link https://orange-management.org * @since 1.0.0 */ -final class L11nCostObjectMapper extends DataMapperAbstract +final class CostObjectL11nMapper extends DataMapperAbstract { /** * Columns. diff --git a/Models/CostObjectMapper.php b/Models/CostObjectMapper.php index 56c55fb..eefe823 100755 --- a/Models/CostObjectMapper.php +++ b/Models/CostObjectMapper.php @@ -45,7 +45,7 @@ final class CostObjectMapper extends DataMapperAbstract */ protected static array $hasMany = [ 'l11n' => [ - 'mapper' => L11nCostObjectMapper::class, + 'mapper' => CostObjectL11nMapper::class, 'table' => 'accounting_costobject_l11n', 'self' => 'accounting_costobject_l11n_costobject', 'conditional' => true, diff --git a/Models/Creditor.php b/Models/Creditor.php index 41a0fa5..bf648d9 100755 --- a/Models/Creditor.php +++ b/Models/Creditor.php @@ -40,7 +40,7 @@ class Creditor * @var null|int|Account * @since 1.0.0 */ - protected $account = null; + public $account = null; /** * Get id. @@ -53,16 +53,4 @@ class Creditor { return $this->id; } - - /** - * Get account. - * - * @return null|int|Account - * - * @since 1.0.0 - */ - public function getAccount() - { - return $this->account; - } } diff --git a/Models/Debitor.php b/Models/Debitor.php index 8cb8aa1..88245e7 100755 --- a/Models/Debitor.php +++ b/Models/Debitor.php @@ -40,7 +40,7 @@ class Debitor * @var null|int|Account * @since 1.0.0 */ - protected $account = null; + public $account = null; /** * Get id. @@ -53,16 +53,4 @@ class Debitor { return $this->id; } - - /** - * Get account. - * - * @return null|int|Account - * - * @since 1.0.0 - */ - public function getAccount() - { - return $this->account; - } } diff --git a/tests/Controller/Api/ApiControllerAccountTrait.php b/tests/Controller/Api/ApiControllerAccountTrait.php new file mode 100644 index 0000000..bcf7a1c --- /dev/null +++ b/tests/Controller/Api/ApiControllerAccountTrait.php @@ -0,0 +1,91 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiAccountCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiAccountCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiAccountCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiAccountUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiAccountUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiAccountUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiAccountUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/Api/ApiControllerBatchEntryTrait.php b/tests/Controller/Api/ApiControllerBatchEntryTrait.php new file mode 100644 index 0000000..f899196 --- /dev/null +++ b/tests/Controller/Api/ApiControllerBatchEntryTrait.php @@ -0,0 +1,159 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiBatchEntryCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiBatchEntryCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiBatchEntryCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiBatchEntryUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiBatchEntryUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiBatchEntryUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiBatchEntryUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiRecurringEntryCreate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('name', '1'); + + $this->module->apiRecurringEntryCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiRecurringEntryCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiRecurringEntryCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiRecurringEntryUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiRecurringEntryUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiRecurringEntryUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiRecurringEntryUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/Api/ApiControllerCostCenterTrait.php b/tests/Controller/Api/ApiControllerCostCenterTrait.php new file mode 100644 index 0000000..b9070d4 --- /dev/null +++ b/tests/Controller/Api/ApiControllerCostCenterTrait.php @@ -0,0 +1,91 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiCostCenterCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostCenterCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiCostCenterCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostCenterUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiCostCenterUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostCenterUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiCostCenterUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/Api/ApiControllerCostObjectTrait.php b/tests/Controller/Api/ApiControllerCostObjectTrait.php new file mode 100644 index 0000000..9d3507e --- /dev/null +++ b/tests/Controller/Api/ApiControllerCostObjectTrait.php @@ -0,0 +1,91 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiCostObjectCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostObjectCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiCostObjectCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostObjectUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiCostObjectUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiCostObjectUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiCostObjectUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/Api/ApiControllerEntryTrait.php b/tests/Controller/Api/ApiControllerEntryTrait.php new file mode 100644 index 0000000..ec97c24 --- /dev/null +++ b/tests/Controller/Api/ApiControllerEntryTrait.php @@ -0,0 +1,91 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiEntryCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiEntryCreateInvalidData() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiEntryCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiEntryUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiEntryUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiEntryUpdateInvalidData() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiEntryUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/Api/ApiControllerTaxKeyTrait.php b/tests/Controller/Api/ApiControllerTaxKeyTrait.php new file mode 100644 index 0000000..ed384e5 --- /dev/null +++ b/tests/Controller/Api/ApiControllerTaxKeyTrait.php @@ -0,0 +1,91 @@ +header->account = 1; + $request->setData('name', '1'); + + $this->module->apiTaxKeyCreate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiTaxKeyCreateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiTaxKeyCreate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiTaxKeyUpdate() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('id', '1'); + + $this->module->apiTaxKeyUpdate($request, $response); + + self::assertTrue(true); + //self::assertGreaterThan(0, $response->get('')['response']->getId()); + } + + /** + * @covers Modules\Accounting\Controller\ApiController + * @group module + */ + public function testApiTaxKeyUpdateInvalid() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->header->account = 1; + $request->setData('invalid', '1'); + + $this->module->apiTaxKeyUpdate($request, $response); + self::assertEquals(RequestStatusCode::R_400, $response->header->status); + } +} diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php new file mode 100644 index 0000000..b2cf893 --- /dev/null +++ b/tests/Controller/ApiControllerTest.php @@ -0,0 +1,99 @@ +app = new class() extends ApplicationAbstract + { + protected string $appName = 'Api'; + }; + + $this->app->dbPool = $GLOBALS['dbpool']; + $this->app->orgId = 1; + $this->app->accountManager = new AccountManager($GLOBALS['session']); + $this->app->appSettings = new CoreSettings(); + $this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/'); + $this->app->dispatcher = new Dispatcher($this->app); + $this->app->eventManager = new EventManager($this->app->dispatcher); + $this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php'); + + $account = new Account(); + TestUtils::setMember($account, 'id', 1); + + $permission = new AccountPermission(); + $permission->setUnit(1); + $permission->setApp('backend'); + $permission->setPermission( + PermissionType::READ + | PermissionType::CREATE + | PermissionType::MODIFY + | PermissionType::DELETE + | PermissionType::PERMISSION + ); + + $account->addPermission($permission); + + $this->app->accountManager->add($account); + $this->app->router = new WebRouter(); + + $this->module = $this->app->moduleManager->get('Accounting'); + + TestUtils::setMember($this->module, 'app', $this->app); + } + + use ApiControllerAccountTrait; + use ApiControllerCostCenterTrait; + use ApiControllerCostObjectTrait; + use ApiControllerTaxKeyTrait; + use ApiControllerEntryTrait; + use ApiControllerBatchEntryTrait; +} diff --git a/tests/Models/AccountAbstractTest.php b/tests/Models/AccountAbstractTest.php new file mode 100644 index 0000000..e2610da --- /dev/null +++ b/tests/Models/AccountAbstractTest.php @@ -0,0 +1,44 @@ +class = new class() extends AccountAbstract { + }; + } + + public function testDefault() : void + { + self::assertEquals(0, $this->class->getId()); + self::assertEquals(null, $this->class->summaryAccount); + self::assertEquals(null, $this->class->getEntryById(0)); + self::assertEquals([], $this->class->getEntriesByDate(new \DateTime())); + } +} diff --git a/tests/Models/BalanceL11nTest.php b/tests/Models/BalanceL11nTest.php new file mode 100644 index 0000000..f7e6e49 --- /dev/null +++ b/tests/Models/BalanceL11nTest.php @@ -0,0 +1,100 @@ +l11n = new BalanceL11n(); + } + + /** + * @covers Modules\Accounting\Models\BalanceL11n + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->l11n->getId()); + self::assertEquals('', $this->l11n->name); + self::assertEquals('', $this->l11n->description); + self::assertEquals(0, $this->l11n->balance); + self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\BalanceL11n + * @group module + */ + public function testNameInputOutput() : void + { + $this->l11n->name = 'TestName'; + self::assertEquals('TestName', $this->l11n->name); + } + + /** + * @covers Modules\Accounting\Models\BalanceL11n + * @group module + */ + public function testDescriptionInputOutput() : void + { + $this->l11n->description = 'TestDescription'; + self::assertEquals('TestDescription', $this->l11n->description); + } + + /** + * @covers Modules\Accounting\Models\BalanceL11n + * @group module + */ + public function testLanguageInputOutput() : void + { + $this->l11n->setLanguage(ISO639x1Enum::_DE); + self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\BalanceL11n + * @group module + */ + public function testSerialize() : void + { + $this->l11n->name = 'Title'; + $this->l11n->description = 'Description'; + $this->l11n->balance = 2; + $this->l11n->setLanguage(ISO639x1Enum::_DE); + + self::assertEquals( + [ + 'id' => 0, + 'name' => 'Title', + 'description' => 'Description', + 'balance' => 2, + 'language' => ISO639x1Enum::_DE, + ], + $this->l11n->jsonSerialize() + ); + } +} diff --git a/tests/Models/BalanceTest.php b/tests/Models/BalanceTest.php new file mode 100644 index 0000000..9ca3c7a --- /dev/null +++ b/tests/Models/BalanceTest.php @@ -0,0 +1,42 @@ +balance = new Balance(); + } + + /** + * @covers Modules\Accounting\Models\Balance + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->balance->getId()); + } +} diff --git a/tests/Models/CostCenterL11nTest.php b/tests/Models/CostCenterL11nTest.php new file mode 100644 index 0000000..908a714 --- /dev/null +++ b/tests/Models/CostCenterL11nTest.php @@ -0,0 +1,100 @@ +l11n = new CostCenterL11n(); + } + + /** + * @covers Modules\Accounting\Models\CostCenterL11n + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->l11n->getId()); + self::assertEquals('', $this->l11n->name); + self::assertEquals('', $this->l11n->description); + self::assertEquals(0, $this->l11n->costcenter); + self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\CostCenterL11n + * @group module + */ + public function testNameInputOutput() : void + { + $this->l11n->name = 'TestName'; + self::assertEquals('TestName', $this->l11n->name); + } + + /** + * @covers Modules\Accounting\Models\CostCenterL11n + * @group module + */ + public function testDescriptionInputOutput() : void + { + $this->l11n->description = 'TestDescription'; + self::assertEquals('TestDescription', $this->l11n->description); + } + + /** + * @covers Modules\Accounting\Models\CostCenterL11n + * @group module + */ + public function testLanguageInputOutput() : void + { + $this->l11n->setLanguage(ISO639x1Enum::_DE); + self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\CostCenterL11n + * @group module + */ + public function testSerialize() : void + { + $this->l11n->name = 'Title'; + $this->l11n->description = 'Description'; + $this->l11n->costcenter = 2; + $this->l11n->setLanguage(ISO639x1Enum::_DE); + + self::assertEquals( + [ + 'id' => 0, + 'name' => 'Title', + 'description' => 'Description', + 'costcenter' => 2, + 'language' => ISO639x1Enum::_DE, + ], + $this->l11n->jsonSerialize() + ); + } +} diff --git a/tests/Models/CostCenterTest.php b/tests/Models/CostCenterTest.php index 474f11a..4893185 100755 --- a/tests/Models/CostCenterTest.php +++ b/tests/Models/CostCenterTest.php @@ -21,31 +21,25 @@ use Modules\Accounting\Models\CostCenter; */ class CostCenterTest extends \PHPUnit\Framework\TestCase { - /** - * @covers Modules\Accounting\Models\CostCenter - * @group module - */ - public function testDefault() : void - { - $cc = new CostCenter(); + private CostCenter $cc; - self::assertEquals(0, $cc->getId()); - self::assertEquals('', $cc->l11n->name); - self::assertEquals('', $cc->code); - self::assertEquals('', $cc->l11n->description); - self::assertNull($cc->parent); + /** + * {@inheritdoc} + */ + protected function setUp() : void + { + $this->cc = new CostCenter(); } /** * @covers Modules\Accounting\Models\CostCenter * @group module */ - public function testNameInputOutput() : void + public function testDefault() : void { - $cc = new CostCenter(); - - $cc->l11n->name = 'TestName'; - self::assertEquals('TestName', $cc->l11n->name); + self::assertEquals(0, $this->cc->getId()); + self::assertEquals('', $this->cc->code); + self::assertNull($this->cc->parent); } /** @@ -54,22 +48,8 @@ class CostCenterTest extends \PHPUnit\Framework\TestCase */ public function testCodeInputOutput() : void { - $cc = new CostCenter(); - - $cc->code = 'TestCode'; - self::assertEquals('TestCode', $cc->code); - } - - /** - * @covers Modules\Accounting\Models\CostCenter - * @group module - */ - public function testDescriptionInputOutput() : void - { - $cc = new CostCenter(); - - $cc->l11n->description = 'TestDescription'; - self::assertEquals('TestDescription', $cc->l11n->description); + $this->cc->code = 'TestCode'; + self::assertEquals('TestCode', $this->cc->code); } /** @@ -78,9 +58,7 @@ class CostCenterTest extends \PHPUnit\Framework\TestCase */ public function testParentInputOutput() : void { - $cc = new CostCenter(); - - $cc->parent = 1; - self::assertEquals(1, $cc->parent); + $this->cc->parent = 1; + self::assertEquals(1, $this->cc->parent); } } diff --git a/tests/Models/CostObjectL11nTest.php b/tests/Models/CostObjectL11nTest.php new file mode 100644 index 0000000..7f150c8 --- /dev/null +++ b/tests/Models/CostObjectL11nTest.php @@ -0,0 +1,100 @@ +l11n = new CostObjectL11n(); + } + + /** + * @covers Modules\Accounting\Models\CostObjectL11n + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->l11n->getId()); + self::assertEquals('', $this->l11n->name); + self::assertEquals('', $this->l11n->description); + self::assertEquals(0, $this->l11n->costobject); + self::assertEquals(ISO639x1Enum::_EN, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\CostObjectL11n + * @group module + */ + public function testNameInputOutput() : void + { + $this->l11n->name = 'TestName'; + self::assertEquals('TestName', $this->l11n->name); + } + + /** + * @covers Modules\Accounting\Models\CostObjectL11n + * @group module + */ + public function testDescriptionInputOutput() : void + { + $this->l11n->description = 'TestDescription'; + self::assertEquals('TestDescription', $this->l11n->description); + } + + /** + * @covers Modules\Accounting\Models\CostObjectL11n + * @group module + */ + public function testLanguageInputOutput() : void + { + $this->l11n->setLanguage(ISO639x1Enum::_DE); + self::assertEquals(ISO639x1Enum::_DE, $this->l11n->getLanguage()); + } + + /** + * @covers Modules\Accounting\Models\CostObjectL11n + * @group module + */ + public function testSerialize() : void + { + $this->l11n->name = 'Title'; + $this->l11n->description = 'Description'; + $this->l11n->costobject = 2; + $this->l11n->setLanguage(ISO639x1Enum::_DE); + + self::assertEquals( + [ + 'id' => 0, + 'name' => 'Title', + 'description' => 'Description', + 'costobject' => 2, + 'language' => ISO639x1Enum::_DE, + ], + $this->l11n->jsonSerialize() + ); + } +} diff --git a/tests/Models/CostObjectTest.php b/tests/Models/CostObjectTest.php index 86f1a09..6994557 100755 --- a/tests/Models/CostObjectTest.php +++ b/tests/Models/CostObjectTest.php @@ -21,31 +21,25 @@ use Modules\Accounting\Models\CostObject; */ class CostObjectTest extends \PHPUnit\Framework\TestCase { - /** - * @covers Modules\Accounting\Models\CostObject - * @group module - */ - public function testDefault() : void - { - $co = new CostObject(); + private CostObject $cc; - self::assertEquals(0, $co->getId()); - self::assertEquals('', $co->l11n->name); - self::assertEquals('', $co->code); - self::assertEquals('', $co->l11n->description); - self::assertNull($co->parent); + /** + * {@inheritdoc} + */ + protected function setUp() : void + { + $this->cc = new CostObject(); } /** * @covers Modules\Accounting\Models\CostObject * @group module */ - public function testNameInputOutput() : void + public function testDefault() : void { - $co = new CostObject(); - - $co->l11n->name = 'TestName'; - self::assertEquals('TestName', $co->l11n->name); + self::assertEquals(0, $this->cc->getId()); + self::assertEquals('', $this->cc->code); + self::assertNull($this->cc->parent); } /** @@ -54,22 +48,8 @@ class CostObjectTest extends \PHPUnit\Framework\TestCase */ public function testCodeInputOutput() : void { - $co = new CostObject(); - - $co->code = 'TestCode'; - self::assertEquals('TestCode', $co->code); - } - - /** - * @covers Modules\Accounting\Models\CostObject - * @group module - */ - public function testDescriptionInputOutput() : void - { - $co = new CostObject(); - - $co->l11n->description = 'TestDescription'; - self::assertEquals('TestDescription', $co->l11n->description); + $this->cc->code = 'TestCode'; + self::assertEquals('TestCode', $this->cc->code); } /** @@ -78,9 +58,7 @@ class CostObjectTest extends \PHPUnit\Framework\TestCase */ public function testParentInputOutput() : void { - $co = new CostObject(); - - $co->parent = 1; - self::assertEquals(1, $co->parent); + $this->cc->parent = 1; + self::assertEquals(1, $this->cc->parent); } } diff --git a/tests/Models/CreditorTest.php b/tests/Models/CreditorTest.php new file mode 100644 index 0000000..f098fd2 --- /dev/null +++ b/tests/Models/CreditorTest.php @@ -0,0 +1,42 @@ +creditor = new Creditor(); + } + + /** + * @covers Modules\Accounting\Models\Creditor + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->creditor->getId()); + } +} diff --git a/tests/Models/DebitorTest.php b/tests/Models/DebitorTest.php new file mode 100644 index 0000000..ebc70b9 --- /dev/null +++ b/tests/Models/DebitorTest.php @@ -0,0 +1,42 @@ +creditor = new Debitor(); + } + + /** + * @covers Modules\Accounting\Models\Debitor + * @group module + */ + public function testDefault() : void + { + self::assertEquals(0, $this->creditor->getId()); + } +} diff --git a/tests/Models/NullCostCenter.php b/tests/Models/NullCostCenter.php new file mode 100644 index 0000000..a9a42b7 --- /dev/null +++ b/tests/Models/NullCostCenter.php @@ -0,0 +1,42 @@ +getId()); + } +} diff --git a/tests/Models/NullCostCenterTest.php b/tests/Models/NullCostCenterTest.php new file mode 100644 index 0000000..7707ac7 --- /dev/null +++ b/tests/Models/NullCostCenterTest.php @@ -0,0 +1,42 @@ +getId()); + } +} diff --git a/tests/Models/NullCostObject.php b/tests/Models/NullCostObject.php new file mode 100644 index 0000000..a41cbfb --- /dev/null +++ b/tests/Models/NullCostObject.php @@ -0,0 +1,42 @@ +getId()); + } +} diff --git a/tests/Models/NullCostObjectTest.php b/tests/Models/NullCostObjectTest.php new file mode 100644 index 0000000..a60ca6e --- /dev/null +++ b/tests/Models/NullCostObjectTest.php @@ -0,0 +1,42 @@ +getId()); + } +}