Example #1
0
 public function testMergeGroupsWithFIlters()
 {
     // create groups
     $productGroup = array();
     foreach (range(1, 3) as $i) {
         $productGroup[$i] = ProductFileGroup::getNewInstance($this->product);
         $productGroup[$i]->save();
     }
     // create files
     $productFile = array();
     $productFiles = array();
     $dir = ClassLoader::getRealPath('cache') . '/';
     foreach (range(1, 2) as $i) {
         file_put_contents($productFiles[$i] = $dir . md5($i), "file {$i}");
         $productFile[$i] = ProductFile::getNewInstance($this->product, $productFiles[$i], "test_file_{$i}.txt");
         $productFile[$i]->save();
     }
     $productFile[1]->productFileGroup->set($productGroup[2]);
     $productFile[1]->save();
     $this->assertEqual($this->product->getFileGroups()->getTotalRecordCount(), 3);
     $this->assertEqual($this->product->getFiles()->getTotalRecordCount(), 2);
     $filesMergedWithGroups = $this->product->getFilesMergedWithGroupsArray();
     $this->assertEqual(count($filesMergedWithGroups), 4);
     // Check files without group
     $this->assertTrue(isset($filesMergedWithGroups[1]['ID']));
     $this->assertEqual($filesMergedWithGroups[1]['ID'], $productFile[2]->getID());
     $this->assertFalse(isset($filesMergedWithGroups[1]['ProductFileGroup']['ID']));
     // Check first group
     $this->assertFalse(isset($filesMergedWithGroups[2]['ID']));
     $this->assertTrue(isset($filesMergedWithGroups[2]['ProductFileGroup']['ID']));
     $this->assertEqual($filesMergedWithGroups[2]['ProductFileGroup']['ID'], $productGroup[1]->getID());
     // Check second group
     $this->assertTrue(isset($filesMergedWithGroups[3]['ID']));
     $this->assertEqual($filesMergedWithGroups[3]['ID'], $productFile[1]->getID());
     $this->assertTrue(isset($filesMergedWithGroups[3]['ProductFileGroup']['ID']));
     $this->assertEqual($filesMergedWithGroups[3]['ProductFileGroup']['ID'], $productGroup[2]->getID());
     // Check second group
     $this->assertFalse(isset($filesMergedWithGroups[4]['ID']));
     $this->assertTrue(isset($filesMergedWithGroups[4]['ProductFileGroup']['ID']));
     $this->assertEqual($filesMergedWithGroups[4]['ProductFileGroup']['ID'], $productGroup[3]->getID());
     foreach ($productFiles as $fileName) {
         unlink($fileName);
     }
     foreach ($productFile as $file) {
         $file->delete();
     }
 }