Update travis & tests

This commit is contained in:
alphayax 2016-06-06 08:22:20 +02:00
parent 5d57a5fd82
commit 46095c9024
7 changed files with 180 additions and 18 deletions

View File

@ -4,17 +4,15 @@ php:
- '5.6'
- '7.0'
#install:
# - curl -s http://getcomposer.org/installer | php
# - php composer.phar install --dev --no-interaction
# - composer dump-autoload
#
#script:
# - mkdir -p build/cov
# - mkdir -p build/logs
# - php vendor/bin/phpunit -c phpunit.dist.xml
#
#after_success:
# - travis_retry php vendor/bin/coveralls -v
# - travis_retry php vendor/bin/codacycoverage clover build/logs/clover.xml
#
install:
- curl -s http://getcomposer.org/installer | php
- php composer.phar install --dev --no-interaction
- composer dump-autoload
script:
- mkdir -p build/cov
- mkdir -p build/logs
- php vendor/bin/phpunit -c phpunit.dist.xml
after_success:
- travis_retry php vendor/bin/codacycoverage clover build/logs/clover.xml

View File

@ -12,9 +12,14 @@
],
"require" : {
"php": ">=5.5.0",
"alphayax/php_utils" : "^1.0.0",
"alphayax/php_utils" : "^1.0.2",
"monolog/monolog": "^1.9.1"
},
"require-dev" : {
"phpunit/phpunit": "^5.4.0",
"zf1/zend-reflection": "1.12.*",
"codacy/coverage": "<2.0.0"
},
"autoload": {
"psr-4": {
"alphayax\\": "./"

View File

@ -4,7 +4,7 @@
require_once '../../vendor/autoload.php';
/// Define our application
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.example_airmedia', 'Freebox PHP API Example (AirMedia)', '1.0.0');
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.airmedia', 'PHP API Example (AirMedia)', '1.0.0');
$App->authorize();
$App->openSession();
@ -13,8 +13,8 @@ $AirMediaService = new \alphayax\freebox\api\v3\services\AirMedia\AirMedia( $App
// AirMedia Config
$Configuration = $AirMediaService->getConfiguration();
var_dump( $Configuration);
print_r( $Configuration);
/*
// AirMedia Receivers
$Receivers = $AirMediaService->getAirMediaReceivers();
var_dump( $Receivers);
@ -27,3 +27,4 @@ $Request->setMedia( 'http://anon.nasa-global.edgesuite.net/HD_downloads/GRAIL_la
$Status = $AirMediaService->sendRequestToAirMediaReceiver( 'Freebox Player', $Request);
var_dump( $Status);
*/

10
phpunit.dist.xml Normal file
View File

@ -0,0 +1,10 @@
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="all">
<directory>tests</directory>
</testsuite>
</testsuites>
<logging>
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
</phpunit>

10
phpunit.xml Normal file
View File

@ -0,0 +1,10 @@
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="all">
<directory>tests</directory>
</testsuite>
</testsuites>
<logging>
<log type="coverage-clover" target="clover.xml"/>
</logging>
</phpunit>

95
tests/Test.php Normal file
View File

@ -0,0 +1,95 @@
<?php
namespace alphayax\tests;
use alphayax\freebox\api\v3\Model;
use alphayax\utils\file_system\Directory;
class Test extends \PHPUnit_Framework_TestCase {
public function testModel(){
return;
/// Load Models
$ModelsDir = new Directory( '../freebox/api/v3/models/');
$ModelFiles = $ModelsDir->getFilesByExtension( 'php', true);
foreach ($ModelFiles as $modelFile){
require_once $modelFile;
}
/// Get Model subClasses
$LoadedClasses = get_declared_classes();
$ModelClasses = [];
foreach( $LoadedClasses as $loadedClass){
if( is_subclass_of( $loadedClass, Model::class)){
$ModelClasses[] = $loadedClass;
}
}
/// Test classes
foreach( $ModelClasses as $modelClass){
$ModelReflect = new \ReflectionClass( $modelClass);
$ClassArgs = [];
$properties = $ModelReflect->getProperties();
foreach ( $properties as $property){
$ClassArgs[$property->getName()] = '';
}
$Model = new $modelClass($ClassArgs);
$methods = $ModelReflect->getMethods();
foreach ( $methods as $method){
$method = new \Zend_Reflection_Method( $Model, $method->getName());
$docBlock = $method->getDocblock();
echo "--" . PHP_EOL;
echo "$modelClass " . $method->getName() . PHP_EOL;
if( ! $method->isPublic()){
continue;
}
$args = [];
if($docBlock->hasTag('param')) {
/** @var \Zend_Reflection_Docblock_Tag_Param[] $tagParams */
$tagParams = $docBlock->getTags('param'); // $tagReturn is an instance of Zend_Reflection_Docblock_Tag_Return
foreach ( $tagParams as $tagParam){
echo "Param Type : " . $tagParam->getType() . PHP_EOL;
switch( $tagParam->getType()){
case 'string' : $args[] = $tagParam->getName(); break;
case 'bool':
case 'boolean': $args[] = true; break;
case 'array' : $args[] = []; break;
default : print_r( $tagParam); return;
}
}
}
$a = $method->invokeArgs( $Model, $args);
if( $docBlock->hasTag('return')) {
/** @var \Zend_Reflection_Docblock_Tag_Return $tagReturn */
$tagReturn = $docBlock->getTag('return');
echo "Returns a: " . $tagReturn->getType() . PHP_EOL;
$this->assertInternalType( $tagReturn->getType(), $a);
/*
switch( $tagReturn->getType()){
case 'string' : $this->assertInternalType( string); break;
case 'bool':
case 'boolean': $args[] = true; break;
case 'array' : $args[] = []; break;
default : print_r( $tagParam); return;
}
*/
}
}
}
}
}

View File

@ -0,0 +1,43 @@
<?php
namespace alphayax\tests\models;
use alphayax\freebox\api\v3\models\AirMedia\AirMediaConfig;
class AirMediaConfigTest extends \PHPUnit_Framework_TestCase {
public function testConstruct(){
$data = [
'enabled' => true,
];
$AM_Config = new AirMediaConfig( $data);
$this->assertAttributeEquals( $data['enabled'], 'enabled', $AM_Config);
}
public function testGetters() {
$data = [
'enabled' => true,
];
$AM_Config = new AirMediaConfig( $data);
$this->assertEquals( $AM_Config->isEnabled(), $data['enabled']);
}
public function testSetters() {
$data = [
'enabled' => true,
];
$AM_Config = new AirMediaConfig( $data);
$AM_Config->setEnabled( false);
$this->assertAttributeEquals( false, 'enabled', $AM_Config);
$AM_Config->setPassword( 'azerty');
$this->assertAttributeEquals( 'azerty', 'password', $AM_Config);
}
}