当前位置: 首页>>代码示例>>PHP>>正文


PHP ContentController::hasMethod方法代码示例

本文整理汇总了PHP中ContentController::hasMethod方法的典型用法代码示例。如果您正苦于以下问题:PHP ContentController::hasMethod方法的具体用法?PHP ContentController::hasMethod怎么用?PHP ContentController::hasMethod使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ContentController的用法示例。


在下文中一共展示了ContentController::hasMethod方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testHasmethodBehaviour

	function testHasmethodBehaviour() {
		/* SiteTree should have all of the methods that Versioned has, because Versioned is listed in SiteTree's
		 * extensions */
		$st = new SiteTree();
		$cc = new ContentController($st);

		$this->assertTrue($st->hasMethod('publish'), "Test SiteTree has publish");
		$this->assertTrue($st->hasMethod('migrateVersion'), "Test SiteTree has migrateVersion");
		
		/* This relationship should be case-insensitive, too */
		$this->assertTrue($st->hasMethod('PuBliSh'), "Test SiteTree has PuBliSh");
		$this->assertTrue($st->hasMethod('MiGratEVersIOn'), "Test SiteTree has MiGratEVersIOn");
		
		/* In a similar manner, all of SiteTree's methods should be available on ContentController, because $failover is set */
		$this->assertTrue($cc->hasMethod('canView'), "Test ContentController has canView");
		$this->assertTrue($cc->hasMethod('linkorcurrent'), "Test ContentController has linkorcurrent");
		
		/* This 'method copying' is transitive, so all of Versioned's methods should be available on ContentControler.
		 * Once again, this is case-insensitive */
		$this->assertTrue($cc->hasMethod('MiGratEVersIOn'), "Test ContentController has MiGratEVersIOn");
		
		/* The above examples make use of SiteTree, Versioned and ContentController.  Let's test defineMethods() more
		 * directly, with some sample objects */
		$objs = array();
		$objs[] = new ObjectTest_T2();
		$objs[] = new ObjectTest_T2();
		$objs[] = new ObjectTest_T2();
		
		// All these methods should exist and return true
		$trueMethods = array('testMethod','otherMethod','someMethod','t1cMethod','normalMethod');
		
		foreach($objs as $i => $obj) {
			foreach($trueMethods as $method) {
				$methodU = strtoupper($method);
				$methodL = strtoupper($method);
				$this->assertTrue($obj->hasMethod($method), "Test that obj#$i has method $method");
				$this->assertTrue($obj->hasMethod($methodU), "Test that obj#$i has method $methodU");
				$this->assertTrue($obj->hasMethod($methodL), "Test that obj#$i has method $methodL");

				$this->assertTrue($obj->$method(), "Test that obj#$i can call method $method");
				$this->assertTrue($obj->$methodU(), "Test that obj#$i can call method $methodU");
				$this->assertTrue($obj->$methodL(), "Test that obj#$i can call method $methodL");
			}
			
			$this->assertTrue($obj->hasMethod('Wrapping'), "Test that obj#$i has method Wrapping");
			$this->assertTrue($obj->hasMethod('WRAPPING'), "Test that obj#$i has method WRAPPING");
			$this->assertTrue($obj->hasMethod('wrapping'), "Test that obj#$i has method wrapping");
			
			$this->assertEquals("Wrapping", $obj->Wrapping(), "Test that obj#$i can call method Wrapping");
			$this->assertEquals("Wrapping", $obj->WRAPPING(), "Test that obj#$i can call method WRAPPIGN");
			$this->assertEquals("Wrapping", $obj->wrapping(), "Test that obj#$i can call method wrapping");
		}
		
	}
开发者ID:neopba,项目名称:silverstripe-book,代码行数:54,代码来源:ObjectTest.php

示例2: testHasMethod

 function testHasMethod()
 {
     $st = new SiteTree();
     $cc = new ContentController($st);
     // Check that Versiond methods exist on SiteTree
     $this->assertTrue($st->hasMethod('publish'), "Test SiteTree has publish");
     $this->assertTrue($st->hasMethod('migrateVersion'), "Test SiteTree has migrateVersion");
     // Check for different casing
     $this->assertTrue($st->hasMethod('PuBliSh'), "Test SiteTree has PuBliSh");
     $this->assertTrue($st->hasMethod('MiGratEVersIOn'), "Test SiteTree has MiGratEVersIOn");
     // Check that SiteTree methods exist on ContentController (test failover)
     $this->assertTrue($cc->hasMethod('canView'), "Test ContentController has canView");
     $this->assertTrue($cc->hasMethod('linkorcurrent'), "Test ContentController has linkorcurrent");
     $this->assertTrue($cc->hasMethod('MiGratEVersIOn'), "Test ContentController has MiGratEVersIOn");
     // Make use of the test object below.  1st instantiation is different from subsequent, so create a few
     $objs = array();
     $objs[] = new ObjectTest_T2();
     $objs[] = new ObjectTest_T2();
     $objs[] = new ObjectTest_T2();
     // All these methods should exist and return true
     $trueMethods = array('testMethod', 'otherMethod', 'someMethod', 't1cMethod', 'normalMethod');
     foreach ($objs as $i => $obj) {
         foreach ($trueMethods as $method) {
             $methodU = strtoupper($method);
             $methodL = strtoupper($method);
             $this->assertTrue($obj->hasMethod($method), "Test that obj#{$i} has method {$method}");
             $this->assertTrue($obj->hasMethod($methodU), "Test that obj#{$i} has method {$methodU}");
             $this->assertTrue($obj->hasMethod($methodL), "Test that obj#{$i} has method {$methodL}");
             $this->assertTrue($obj->{$method}(), "Test that obj#{$i} can call method {$method}");
             $this->assertTrue($obj->{$methodU}(), "Test that obj#{$i} can call method {$methodU}");
             $this->assertTrue($obj->{$methodL}(), "Test that obj#{$i} can call method {$methodL}");
         }
         $this->assertTrue($obj->hasMethod('Wrapping'), "Test that obj#{$i} has method Wrapping");
         $this->assertTrue($obj->hasMethod('WRAPPING'), "Test that obj#{$i} has method WRAPPING");
         $this->assertTrue($obj->hasMethod('wrapping'), "Test that obj#{$i} has method wrapping");
         $this->assertEquals("Wrapping", $obj->Wrapping(), "Test that obj#{$i} can call method Wrapping");
         $this->assertEquals("Wrapping", $obj->WRAPPING(), "Test that obj#{$i} can call method WRAPPIGN");
         $this->assertEquals("Wrapping", $obj->wrapping(), "Test that obj#{$i} can call method wrapping");
     }
 }
开发者ID:ramziammar,项目名称:websites,代码行数:40,代码来源:ObjectTest.php


注:本文中的ContentController::hasMethod方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。