diff options
-rwxr-xr-x | library/SSRS/Report.php | 5 | ||||
-rwxr-xr-x | tests/library/SSRS/ReportTest.php | 15 |
2 files changed, 19 insertions, 1 deletions
diff --git a/library/SSRS/Report.php b/library/SSRS/Report.php index c12a325..9b3f890 100755 --- a/library/SSRS/Report.php +++ b/library/SSRS/Report.php @@ -189,7 +189,10 @@ class SSRS_Report { * @param boolean $recursive * @return SSRS_Object_CatalogItems */ - public function listChildren($itemPath, $recursive = false) { + public function listChildren($itemPath, $recursive=false) { + if (!is_bool($recursive)) { + throw new SSRS_Report_Exception('Recursive Must Be a Boolean'); + } $params = array( 'ItemPath' => $itemPath, 'Recursive' => $recursive diff --git a/tests/library/SSRS/ReportTest.php b/tests/library/SSRS/ReportTest.php index 68a41de..a0e1245 100755 --- a/tests/library/SSRS/ReportTest.php +++ b/tests/library/SSRS/ReportTest.php @@ -83,6 +83,21 @@ class SSRS_ReportTest extends PHPUnit_Framework_TestCase { $this->assertEquals($expected, $result); } + public function testLoadChildrenCheckRecursiveParameterIsSetAndIsBoolean() { + $soapMock = $this->getMockFromWsdl(dirname(__FILE__) . '/ReportTest/ReportService2010.wsdl', 'SoapClientMockChildren2'); + + $recursiveParam = true; + + $soapMock->expects($this->any()) + ->method('ListChildren') + ->with($this->equalTo(array('ItemPath' => '/Reports', 'Recursive' => true))); + + $ssrs = new SSRS_Report('http://test/ReportServer'); + $ssrs->setSoapService($soapMock); + + $result = $ssrs->listChildren('/Reports', $recursiveParam); + } + public function testLoadItemDefinitionsReturnsXMLStringWithInStdClass() { $soapMock = $this->getMockFromWsdl(dirname(__FILE__) . '/ReportTest/ReportService2010.wsdl', 'SoapClientMockDefinitions'); |