public function testModuleModels()
 {
     echo "preparing object saves...\n";
     class_carrier::getInstance()->getObjRights()->setBitTestMode(true);
     $arrFiles = class_resourceloader::getInstance()->getFolderContent("/system", array(".php"), false, function ($strOneFile) {
         if (uniStripos($strOneFile, "class_module_") !== false) {
             $objClass = new ReflectionClass(uniSubstr($strOneFile, 0, -4));
             if (!$objClass->isAbstract() && $objClass->isSubclassOf("class_model")) {
                 $objAnnotations = new class_reflection(uniSubstr($strOneFile, 0, -4));
                 //block from autotesting?
                 if ($objAnnotations->hasClassAnnotation("@blockFromAutosave")) {
                     echo "skipping class " . uniSubstr($strOneFile, 0, -4) . " due to @blockFromAutosave annotation" . "\n";
                     return false;
                 }
                 return true;
             }
         }
         return false;
     }, function (&$strOneFile) {
         $strOneFile = uniSubstr($strOneFile, 0, -4);
         $strOneFile = new $strOneFile();
     });
     $arrSystemids = array();
     /** @var $objOneInstance class_model */
     foreach ($arrFiles as $objOneInstance) {
         echo "testing object of type " . get_class($objOneInstance) . "@" . $objOneInstance->getSystemid() . "\n";
         $this->assertTrue($objOneInstance->updateObjectToDb(), "saving object " . get_class($objOneInstance));
         $arrSystemids[$objOneInstance->getSystemid()] = get_class($objOneInstance);
         echo " ...saved object of type " . get_class($objOneInstance) . "@" . $objOneInstance->getSystemid() . "\n";
     }
     $objObjectfactory = class_objectfactory::getInstance();
     foreach ($arrSystemids as $strSystemid => $strClass) {
         echo "instantiating " . $strSystemid . "@" . $strClass . "\n";
         $objInstance = $objObjectfactory->getObject($strSystemid);
         $this->assertTrue($objInstance != null);
         $this->assertEquals(get_class($objInstance), $strClass);
         echo "deleting " . $strSystemid . "@" . $strClass . "\n";
         $objInstance->deleteObjectFromDatabase();
     }
     class_carrier::getInstance()->getObjRights()->setBitTestMode(false);
 }
Esempio n. 2
0
 /**
  * @dataProvider additionProvider
  */
 public function testGetAnnotationValuesFromClassParameter($a)
 {
     $objReflection = new class_reflection(new C());
     $this->assertTrue($objReflection->hasClassAnnotation("@classTest"));
     $this->assertTrue($objReflection->hasClassAnnotation("@classParamTest1"));
     $this->assertTrue($objReflection->hasClassAnnotation("@classParamTest2"));
     $this->assertTrue($objReflection->hasClassAnnotation("@classParamTest3"));
     $this->assertTrue($objReflection->hasClassAnnotation("@classParamTest4"));
     $this->assertTrue($objReflection->hasClassAnnotation("@fieldDDValues"));
     $arrClassAnnotations = $objReflection->getAnnotationValuesFromClass("@classTest");
     $this->assertEquals(5, count($arrClassAnnotations));
     $this->assertTrue(in_array("val1", $arrClassAnnotations));
     $this->assertTrue(in_array("val2", $arrClassAnnotations));
     $this->assertTrue(in_array("val3", $arrClassAnnotations));
     $this->assertTrue(in_array("val4", $arrClassAnnotations));
     $this->assertTrue(in_array("val5", $arrClassAnnotations));
     //Values
     $arrValues = $objReflection->getAnnotationValuesFromClass("@classParamTest1");
     $this->assertCount(1, $arrValues);
     $this->assertEquals("val1", $arrValues[0]);
     class_reflection::flushCache();
     $arrValues = $objReflection->getAnnotationValuesFromClass("@classParamTest2");
     $this->assertCount(2, $arrValues);
     $this->assertEquals("", $arrValues[0]);
     $this->assertEquals("", $arrValues[1]);
     class_reflection::flushCache();
     $arrValues = $objReflection->getAnnotationValuesFromClass("@classParamTest3");
     $this->assertCount(1, $arrValues);
     $this->assertEquals("val3", $arrValues[0]);
     class_reflection::flushCache();
     $arrValues = $objReflection->getAnnotationValuesFromClass("@classParamTest4");
     $this->assertCount(1, $arrValues);
     $this->assertEquals("", $arrValues[0]);
     class_reflection::flushCache();
     //Params
     $arrParams = $objReflection->getAnnotationValuesFromClass("@classParamTest1", class_reflection_enum::PARAMS());
     $this->assertCount(1, $arrParams);
     $this->assertCount(0, $arrParams[0]);
     class_reflection::flushCache();
     $arrParamsAll = $objReflection->getAnnotationValuesFromClass("@classParamTest2", class_reflection_enum::PARAMS());
     $this->assertCount(2, $arrParamsAll);
     //param from tow classes
     //Class C
     $arrParams = $arrParamsAll[0];
     $this->assertCount(5, $arrParams);
     $this->assertArrayHasKey("param1", $arrParams);
     $this->assertArrayHasKey("param2", $arrParams);
     $this->assertArrayHasKey("param3", $arrParams);
     $this->assertArrayHasKey("param4", $arrParams);
     $this->assertArrayHasKey("param5", $arrParams);
     $this->assertEquals(0, $arrParams["param1"]);
     $this->assertEquals("abc", $arrParams["param2"]);
     $this->assertTrue(is_array($arrParams["param3"]));
     $this->assertEquals("0", $arrParams["param3"][0]);
     $this->assertEquals("123", $arrParams["param3"][1]);
     $this->assertEquals("456", $arrParams["param3"][2]);
     $this->assertEquals(999, $arrParams["param4"]);
     $this->assertEquals("hans im glück", $arrParams["param5"]);
     //Class B
     $arrParams = $arrParamsAll[1];
     $this->assertCount(2, $arrParams);
     $this->assertArrayHasKey("param1", $arrParams);
     $this->assertArrayHasKey("param2", $arrParams);
     $this->assertEquals(54, $arrParams["param1"]);
     $this->assertEquals(12334, $arrParams["param2"]);
     //Class C
     $arrParams = $objReflection->getAnnotationValuesFromClass("@classParamTest3", class_reflection_enum::PARAMS());
     $arrParams = $arrParams[0];
     $this->assertCount(3, $arrParams);
     $this->assertArrayHasKey("param1", $arrParams);
     $this->assertArrayHasKey("param2", $arrParams);
     $this->assertArrayHasKey("param3", $arrParams);
     $this->assertEquals(0, $arrParams["param1"]);
     $this->assertEquals("abc", $arrParams["param2"]);
     $this->assertTrue(is_array($arrParams["param3"]));
     $this->assertEquals("0", $arrParams["param3"][0]);
     $this->assertEquals("123", $arrParams["param3"][1]);
     $this->assertEquals("456", $arrParams["param3"][2]);
     //Class C
     $arrParams = $objReflection->getAnnotationValuesFromClass("@classParamTest4", class_reflection_enum::PARAMS());
     $arrParams = $arrParams[0];
     $this->assertCount(0, $arrParams);
 }