assertTrue( ModelModel::validateModelClassName($unQualifiedClassName) ); $qualifiedClassName = 'RainLab\Builder\Models\Settings'; $this->assertTrue( ModelModel::validateModelClassName($qualifiedClassName) ); $fullyQualifiedClassName = '\RainLab\Builder\Models\Settings'; $this->assertTrue( ModelModel::validateModelClassName($fullyQualifiedClassName) ); $qualifiedClassNameStartingWithLowerCase = 'rainLab\Builder\Models\Settings'; $this->assertTrue( ModelModel::validateModelClassName($qualifiedClassNameStartingWithLowerCase) ); } public function testInvalidateModelClassName() { $unQualifiedClassName = 'myClassName'; // starts with lower case $this->assertFalse( ModelModel::validateModelClassName($unQualifiedClassName) ); $qualifiedClassName = 'MyNameSpace\MyPlugin\Models\MyClassName'; // namespace\class doesn't exist $this->assertFalse( ModelModel::validateModelClassName($qualifiedClassName) ); $fullyQualifiedClassName = '\MyNameSpace\MyPlugin\Models\MyClassName'; // namespace\class doesn't exist $this->assertFalse( ModelModel::validateModelClassName($fullyQualifiedClassName) ); } public function testGetModelFields(){ // Invalid Class Name try { ModelModel::getModelFields(NULL, 'myClassName'); } catch (SystemException $e) { $this->assertEquals($e->getMessage(), 'Invalid model class name: myClassName'); return; } // Directory Not Found $pluginCodeObj = PluginCode::createFromNamespace('MyNameSpace\MyPlugin\Models\MyClassName'); $this->assertEquals([], ModelModel::getModelFields($pluginCodeObj, 'MyClassName') ); // Directory Found, but Class Not Found $pluginCodeObj = PluginCode::createFromNamespace('RainLab\Builder\Models\MyClassName'); $this->assertEquals([], ModelModel::getModelFields($pluginCodeObj, 'MyClassName') ); // Model without Table Name $pluginCodeObj = PluginCode::createFromNamespace('RainLab\Builder\Models\Settings'); $this->assertEquals([], ModelModel::getModelFields($pluginCodeObj, 'Settings') ); // Model with Table Name copy(__DIR__."/../../fixtures/MyMock.php", __DIR__."/../../../models/MyMock.php"); $pluginCodeObj = PluginCode::createFromNamespace('RainLab\Builder\Models\MyMock'); $this->assertEquals([], ModelModel::getModelFields($pluginCodeObj, 'MyMock') ); } }