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); }
/** * @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); }