/** * tests if a product interval of 36 is possible and if an empty string gets converted to null */ public function testContract() { $product = Sales_Controller_Product::getInstance()->create($this->_getProduct()); $contract = array('id' => NULL, 'number' => 1, 'title' => 'test123', 'products' => array(array('product_id' => $product->getId(), 'interval' => 36, 'billing_point' => 'begin', 'quantity' => ''))); $contract = $this->_instance->saveContract($contract); $this->assertEquals(NULL, $contract['products'][0]['quantity']); $this->assertEquals(36, $contract['products'][0]['interval']); }
/** * try to get a contract * */ public function testSearchContracts() { // create $contract = $this->_getContract(); $contractData = $this->_instance->saveContract($contract->toArray()); // search & check $search = $this->_instance->searchContracts($this->_getFilter(), $this->_getPaging()); $this->assertEquals($contract->title, $search['results'][0]['title']); $this->assertEquals(1, $search['totalcount']); // cleanup $this->_instance->deleteContracts($contractData['id']); $this->_decreaseNumber(); }
/** * test constraints after changing relation */ public function testTimeaccountRelation() { $sjson = new Sales_Frontend_Json(); $tjson = new Timetracker_Frontend_Json(); $ta = $tjson->saveTimeaccount(array('number' => 43379, 'title' => 'bla')); $c1 = $sjson->saveContract(array('number' => '1', 'description' => 'blub bla', 'title' => 'blub')); $c2 = $sjson->saveContract(array('number' => '2', 'description' => 'bla blub', 'title' => 'bla')); $c1['relations'] = array(array('related_model' => 'Timetracker_Model_Timeaccount', 'related_id' => $ta['id'], 'related_degree' => 'sibling', 'type' => 'TIME_ACCOUNT', 'remark' => 'unittest', 'related_backend' => 'Sql')); $c1 = $sjson->saveContract($c1); $c1Id = $c1['id']; // delete timeaccount relation from the first contract $c1 = $sjson->getContract($c1Id); $c1['relations'] = array(); $c1 = $sjson->saveContract($c1); // save second contract having the timeaccount related $c2['relations'] = array(array('related_model' => 'Timetracker_Model_Timeaccount', 'related_id' => $ta['id'], 'related_degree' => 'sibling', 'type' => 'TIME_ACCOUNT', 'remark' => 'unittest', 'related_backend' => 'Sql')); $c2 = $sjson->saveContract($c2); $this->assertEquals(1, count($c2['relations'])); }
/** * testTransfer * * @see 0009210: Allow to change relations * https://forge.tine20.org/mantisbt/view.php?id=9210 */ public function testTransfer() { $sclever = Addressbook_Controller_Contact::getInstance()->get($this->_personas['sclever']->contact_id, null, false); $pwulf = Addressbook_Controller_Contact::getInstance()->get($this->_personas['pwulf']->contact_id, null, false); $container = Tinebase_Container::getInstance()->create(new Tinebase_Model_Container(array('application_id' => Tinebase_Application::getInstance()->getApplicationByName('Sales')->getId(), 'type' => Tinebase_Model_Container::TYPE_SHARED, 'backend' => 'sql', 'name' => 'testsdf'))); $contract = new Sales_Model_Contract(array('number' => '23547', 'title' => 'test', 'container_id' => $container->getId())); $contract = Sales_Controller_Contract::getInstance()->create($contract); $contract2 = new Sales_Model_Contract(array('number' => '23347', 'title' => 'test', 'container_id' => $container->getId())); $contract2 = Sales_Controller_Contract::getInstance()->create($contract2); $json = new Sales_Frontend_Json(); $contractJson = $contract->toArray(); $contractJson['relations'][] = array('own_degree' => Tinebase_Model_Relation::DEGREE_SIBLING, 'related_model' => 'Addressbook_Model_Contact', 'related_record' => $sclever->toArray(), 'type' => 'CUSTOMER'); $contractJson = $json->saveContract($contractJson); $contract2Json = $contract2->toArray(); $contract2Json['relations'][] = array('own_degree' => Tinebase_Model_Relation::DEGREE_SIBLING, 'related_model' => 'Addressbook_Model_Contact', 'related_record' => $sclever->toArray(), 'type' => 'PARTNER'); $contract2Json['relations'][] = array('own_degree' => Tinebase_Model_Relation::DEGREE_SIBLING, 'related_model' => 'Addressbook_Model_Contact', 'related_record' => $pwulf->toArray(), 'type' => 'PARTNER'); $contract2Json = $json->saveContract($contract2Json); $this->assertEquals($sclever->getId(), $contractJson['relations'][0]['related_id']); $skipped = Tinebase_Relations::getInstance()->transferRelations($sclever->getId(), $pwulf->getId(), 'Addressbook_Model_Contact'); $this->assertEquals(1, count($skipped)); $skipped = array_pop($skipped); $this->assertEquals($sclever->getId(), $skipped['own_id']); $contractJson = $json->getContract($contract->getId()); $this->assertEquals($pwulf->getId(), $contractJson['relations'][0]['related_id']); $this->setExpectedException('Tinebase_Exception_NotFound'); Tinebase_Relations::getInstance()->transferRelations($sclever->getId(), $pwulf->getId(), 'Addressbook_Model_Contract'); }