コード例 #1
0
 /**
  * Tests setting values.
  */
 public function testSet()
 {
     $optionCategory = new OptionCategory();
     // set category name
     $optionCategory->setName('hansolo');
     $this->assertEquals('hansolo', $optionCategory->getName());
     $optionCategory->setName('');
     $this->assertTrue(empty($optionCategory->getName()));
     $optionCategory->setName('123');
     $this->assertTrue('123' === $optionCategory->getName());
     // set options
     $options = [new Option(), new Option(0, 'testV', 'string', 'elephant'), new Option(0, 'samba', 'array', [1, 2, 3])];
     $optionCategory->setOptions($options);
     $this->assertEquals($options, $optionCategory->getOptions());
     // set categories
     $categories = [new OptionCategory('testv1'), new OptionCategory('testv0')];
     $optionCategory->setCategories($categories);
     $this->assertEquals($categories, $optionCategory->getCategories());
 }
コード例 #2
0
 /**
  * Updates the options of the given category and returns the roles.
  *
  * @param OptionCategory $category
  * @param Form           $form
  *
  * @return string[]
  */
 private function updateOptions(OptionCategory $category, Form $form)
 {
     $categories = $category->getCategories();
     $superCategoryName = $category->getName();
     $roles = [];
     foreach ($categories as $category) {
         $categoryName = $category->getName();
         $options = $category->getOptions();
         foreach ($options as $option) {
             $optionName = $option->getName();
             $optionType = $option->getType();
             $fieldName = $superCategoryName . '_' . str_replace('.', '_', $categoryName) . '_' . $optionName;
             if (!$form->has($fieldName)) {
                 // should be the case only for checkbox
                 $fieldValue = false;
             } else {
                 $fieldValue = $form->get($fieldName);
             }
             settype($fieldValue, $optionType);
             if ($optionType == 'boolean' && $fieldValue) {
                 $roles[] = 'ROLE_' . strtoupper($superCategoryName) . '_' . strtoupper($categoryName) . '_' . strtoupper($optionName);
             }
             $option->setValue($fieldValue);
         }
     }
     return $roles;
 }