コード例 #1
0
 /**
  * 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']);
 }
コード例 #2
0
 /**
  * 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');
 }