/** * @depends testInstall */ public function testProperties() { $this->markTestSkipped('Not ready yet.'); $object_id = 3; //1. Add TAG taxonomy $term = new TaxonomyDef(); $term->name = 'test_property'; $term->class = PropertyTerm::className(); $term->data_table = 'sample_property'; $term->ref_table = SampleTable::className(); $this->tester->assertTrue($term->save()); //2. Create data table $this->tester->assertFalse($this->getTaxonomy()->getTerm($term->name)->isInstalled(), 'The term should NOT be installed.'); $this->getTaxonomy()->getTerm($term->name)->install(); $this->tester->assertTrue($this->getTaxonomy()->getTerm($term->name)->isInstalled(), 'The term should be installed.'); //3. Add some data $this->getTaxonomy()->addTerm($term->name, $object_id, ['prop1' => 'value1', 'prop2' => 'value2']); $term->refresh(); //check count on term $this->tester->assertEquals(2, $term->total_count, 'Tag term count not correct!'); //check update of field $this->getTaxonomy()->addTerm($term->name, $object_id, ['prop1' => 'value1_update']); $data = $this->getTaxonomy()->getTerms($term->name, $object_id); $this->tester->assertEquals('value1_update', $data['prop1'], 'Property value not updated'); $data = SampleTable::find()->hasTags()->all(); }
/** * @depends testInstall */ public function testProperties() { $object_id = 3; //1. Add TAG taxonomy $term = new TaxonomyDef(); $term->name = 'test_property'; $term->class = PropertyTerm::className(); $term->data_table = 'sample_property'; $term->ref_table = SampleTable::className(); $this->tester->assertTrue($term->save()); //2. Create data table $this->tester->assertFalse($this->getTaxonomy()->getTerm($term->name)->isInstalled(), 'The term should NOT be installed.'); $this->getTaxonomy()->getTerm($term->name)->install(); $this->tester->assertTrue($this->getTaxonomy()->getTerm($term->name)->isInstalled(), 'The term should be installed.'); //3. Add some data $this->getTaxonomy()->addTerm($term->name, $object_id, ['prop1' => 'value1', 'prop2' => 'value2']); $term->refresh(); //check count on term $this->tester->assertEquals(2, $term->total_count, 'Tag term count not correct!'); //check update of field $this->getTaxonomy()->addTerm($term->name, $object_id, ['prop1' => 'value1_update']); $data = $this->getTaxonomy()->getTerms($term->name, $object_id); $this->tester->assertEquals('value1_update', $data['prop1'], 'Property value not updated'); // 4. Test PropertyTerm::setTerms() $term = $this->getTaxonomy()->getTerm($term->name); $term->setTerms($object_id, ['prop1' => 'value1', 'prop3' => 'value3']); $data = $term->getTerms($object_id); $this->tester->assertTrue(array_key_exists('prop1', $data), 'Property prop1 is missing'); $this->tester->assertTrue(array_key_exists('prop3', $data), 'Property prop3 is missing'); $this->tester->assertFalse(array_key_exists('prop2', $data), 'Property prop2 must not be here'); // 5. Test PropertyTerm::removeTerm() $term->removeTerm($object_id, array_keys($data)); $data = $term->getTerms($object_id); $this->tester->assertEmpty($data, 'Data must be empty'); }