Skip to content

Commit

Permalink
Merge ebc84a1 into 6b95b9a
Browse files Browse the repository at this point in the history
  • Loading branch information
ScopeyNZ committed Jun 5, 2018
2 parents 6b95b9a + ebc84a1 commit b693a09
Show file tree
Hide file tree
Showing 14 changed files with 145 additions and 124 deletions.
69 changes: 7 additions & 62 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -1,70 +1,15 @@
inherit: true

build:
nodes:
analysis:
tests:
override: [php-scrutinizer-run]

checks:
php:
verify_property_names: true
verify_argument_usable_as_reference: true
verify_access_scope_valid: true
useless_calls: true
use_statement_alias_conflict: true
variable_existence: true
unused_variables: true
unused_properties: true
unused_parameters: true
unused_methods: true
unreachable_code: true
too_many_arguments: true
sql_injection_vulnerabilities: true
simplify_boolean_return: true
side_effects_or_types: true
security_vulnerabilities: true
return_doc_comments: true
return_doc_comment_if_not_inferrable: true
require_scope_for_properties: true
require_scope_for_methods: true
require_php_tag_first: true
psr2_switch_declaration: true
psr2_class_declaration: true
property_assignments: true
prefer_while_loop_over_for_loop: true
precedence_mistakes: true
precedence_in_conditions: true
phpunit_assertions: true
php5_style_constructor: true
parse_doc_comments: true
parameter_non_unique: true
parameter_doc_comments: true
param_doc_comment_if_not_inferrable: true
optional_parameters_at_the_end: true
one_class_per_file: true
no_unnecessary_if: true
no_trailing_whitespace: true
no_property_on_interface: true
no_non_implemented_abstract_methods: true
no_error_suppression: true
no_duplicate_arguments: true
no_commented_out_code: true
newline_at_end_of_file: true
missing_arguments: true
method_calls_on_non_object: true
instanceof_class_exists: true
foreach_traversable: true
fix_line_ending: true
fix_doc_comments: true
duplication: true
deprecated_code_usage: true
deadlock_detection_in_loops: true
code_rating: true
closure_use_not_conflicting: true
catch_class_exists: true
blank_line_after_namespace_declaration: false
avoid_multiple_statements_on_same_line: true
avoid_duplicate_types: true
avoid_conflicting_incrementers: true
avoid_closing_tag: true
assignment_of_null_return: true
argument_type_checks: true
duplication: true

filter:
paths: [src/*, tests/*]

43 changes: 21 additions & 22 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,36 @@
# See https://github.com/silverstripe-labs/silverstripe-travis-support for setup details

sudo: false

language: php

env:
global:
- COMPOSER_ROOT_VERSION=2.x-dev

matrix:
include:
- php: 5.6
env: DB=MYSQL CORE_RELEASE=3.5 PHPCS_TEST=1
env: DB=MYSQL RECIPE_VERSION=1.0.x-dev PHPUNIT_TEST=1 PHPCS_TEST=1
- php: 5.6
env: DB=MYSQL CORE_RELEASE=3.6
env: DB=MYSQL RECIPE_VERSION=1.1.x-dev PHPUNIT_TEST=1
- php: 7.0
env: DB=PGSQL CORE_RELEASE=3.6
env: DB=PGSQL RECIPE_VERSION=1.1.x-dev PHPUNIT_TEST=1
- php: 7.1
env: DB=PGSQL CORE_RELEASE=3.6
- php: 7.1
env: DB=MYSQL CORE_RELEASE=3
env: DB=PGSQL RECIPE_VERSION=1.2.x-dev PHPUNIT_COVERAGE_TEST=1
- php: 7.2
env: DB=MYSQL RECIPE_VERSION=1.x-dev PHPUNIT_TEST=1

before_script:
# Init PHP
- phpenv rehash
- phpenv config-rm xdebug.ini

# Update and validate composer configuration
- composer self-update || true
- composer clear-cache
- composer validate --strict
- phpenv config-rm xdebug.ini || true
- echo 'memory_limit=2G' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini

- git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support
- php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss
- cd ~/builds/ss
- composer install
- composer require --no-update silverstripe/recipe-cms "$RECIPE_VERSION"
- if [[ $DB == PGSQL ]]; then composer require --no-update silverstripe/postgresql:2.0.x-dev; fi
- composer install --prefer-dist --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile

script:
- vendor/bin/phpunit silverstripe-composer-update-checker/tests
- if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs silverstripe-composer-update-checker/src silverstripe-composer-update-checker/tests; fi
- if [[ $PHPUNIT_TEST ]]; then vendor/bin/phpunit; fi
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml; fi
- if [[ $PHPCS_TEST ]]; then vendor/bin/phpcs src/ tests/; fi

after_success:
- if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi
6 changes: 2 additions & 4 deletions _config/extensions.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
---
Name: updatecheckerextensions
---
Package:
BringYourOwnIdeas\Maintenance\Model\Package:
extensions:
- BringYourOwnIdeas\UpdateChecker\Extensions\ComposerUpdateExtension

BringYourOwnIdeas\Maintenance\Util\ComposerLoader:
extensions:
- BringYourOwnIdeas\UpdateChecker\Extensions\ComposerLoaderExtension

UpdatePackageInfoTask:
BringYourOwnIdeas\Maintenance\Tasks\UpdatePackageInfoTask:
extensions:
- BringYourOwnIdeas\UpdateChecker\Extensions\CheckComposerUpdatesExtension
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"update",
"check"
],
"type": "silverstripe-module",
"type": "silverstripe-vendormodule",
"license": "MIT",
"authors": [
{
Expand All @@ -30,6 +30,7 @@
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"composer/composer": "^1",
"silverstripe/framework": "^4",
Expand Down
13 changes: 13 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<phpunit bootstrap="vendor/silverstripe/framework/tests/bootstrap.php" colors="true">
<testsuite name="Default">
<directory>tests/</directory>
</testsuite>
<filter>
<whitelist addUncoveredFilesFromWhitelist="true">
<directory suffix=".php">src/</directory>
<exclude>
<directory suffix=".php">tests/</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
6 changes: 3 additions & 3 deletions src/Extensions/CheckComposerUpdatesExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

namespace BringYourOwnIdeas\UpdateChecker\Extensions;

use BringYourOwnIdeas\Maintenance\Tasks\UpdatePackageInfoTask;
use BringYourOwnIdeas\UpdateChecker\UpdateChecker;
use Config;
use Extension;
use UpdatePackageInfoTask;
use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Extension;

/**
* Task which does the actual checking of updates
Expand Down
30 changes: 20 additions & 10 deletions src/Extensions/ComposerLoaderExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
use Composer\Repository\ArrayRepository;
use Composer\Repository\BaseRepository;
use Composer\Repository\CompositeRepository;
use Extension;
use Composer\Repository\RepositoryInterface;
use SilverStripe\Core\Extension;

class ComposerLoaderExtension extends Extension
{
Expand Down Expand Up @@ -47,16 +48,8 @@ public function getComposer()
*/
public function getPackages(array $allowedTypes = null)
{
/** @var Composer $composer */
$composer = $this->getComposer();

/** @var BaseRepository $repository */
$repository = new CompositeRepository([
new ArrayRepository([$composer->getPackage()]),
$composer->getRepositoryManager()->getLocalRepository(),
]);

$packages = [];
$repository = $this->getRepository();
foreach ($repository->getPackages() as $package) {
// Filter out packages that are not "allowed types"
if (is_array($allowedTypes) && !in_array($package->getType(), $allowedTypes)) {
Expand All @@ -73,6 +66,23 @@ public function getPackages(array $allowedTypes = null)
return $packages;
}

/**
* Provides access to the Composer repository
*
* @return RepositoryInterface
*/
protected function getRepository()
{
/** @var Composer $composer */
$composer = $this->getComposer();

/** @var BaseRepository $repository */
return new CompositeRepository([
new ArrayRepository([$composer->getPackage()]),
$composer->getRepositoryManager()->getLocalRepository(),
]);
}

/**
* Find all dependency constraints for the given package in the current repository and return the strictest one
*
Expand Down
2 changes: 1 addition & 1 deletion src/Extensions/ComposerUpdateExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

namespace BringYourOwnIdeas\UpdateChecker\Extensions;

use DataExtension;
use SilverStripe\ORM\DataExtension;

/**
* Describes any available updates to an installed Composer package
Expand Down
5 changes: 2 additions & 3 deletions src/UpdateChecker.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@
use Composer\Package\PackageInterface;
use Composer\Package\Version\VersionSelector;
use Composer\Repository\CompositeRepository;
use Package;
use DataObject;
use Injector;
use SilverStripe\Core\Injector\Injector;


/**
* The update checker class is provided a {@link Link} object representing a package and uses the Composer API to
Expand Down
24 changes: 14 additions & 10 deletions tests/Extensions/CheckComposerUpdatesExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@

namespace BringYourOwnIdeas\UpdateChecker\Tests\Extensions;

use BringYourOwnIdeas\Maintenance\Util\ComposerLoader;
use BringYourOwnIdeas\Maintenance\Tasks\UpdatePackageInfoTask;
use BringYourOwnIdeas\UpdateChecker\Extensions\CheckComposerUpdatesExtension;
use BringYourOwnIdeas\UpdateChecker\Extensions\ComposerLoaderExtension;
use BringYourOwnIdeas\UpdateChecker\Tests\Stubs\ComposerLoaderExtensionStub;
use BringYourOwnIdeas\UpdateChecker\UpdateChecker;
use Composer\Composer;
use Composer\Package\PackageInterface;
use Composer\Package\RootPackage;
use Config;
use Injector;
use Package;
use PHPUnit_Framework_TestCase;
use SapphireTest;
use UpdatePackageInfoTask;
use SilverStripe\Core\Config\Config;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\Dev\SapphireTest;

/**
* @mixin PHPUnit_Framework_TestCase
Expand All @@ -32,18 +30,24 @@ class CheckComposerUpdatesExtensionTest extends SapphireTest
*/
protected $allowedTypes;

public function setUp()
protected function setUp()
{
parent::setUp();

// Register the extension stub for unit testing to avoid loading Composer
Config::modify()->merge(Injector::class, ComposerLoaderExtension::class, [
'class' => ComposerLoaderExtensionStub::class,
]);

// Create the task for testing
$this->task = UpdatePackageInfoTask::create();

// Create a partial mock of the update checker
$updateCheckerMock = $this->getMockBuilder(UpdateChecker::class)->setMethods(['checkForUpdates'])->getMock();
$this->task->setUpdateChecker($updateCheckerMock);

$this->allowedTypes = ['silverstripe-module', 'silverstripe-vendormodule', 'silverstripe-theme'];
Config::inst()->update(UpdatePackageInfoTask::class, 'allowed_types', $this->allowedTypes);
Config::modify()->set(UpdatePackageInfoTask::class, 'allowed_types', $this->allowedTypes);
}

public function testRunPassesPackagesToUpdateChecker()
Expand Down
6 changes: 3 additions & 3 deletions tests/Extensions/ComposerUpdateExtensionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

namespace BringYourOwnIdeas\UpdateChecker\Tests\Extensions;

use BringYourOwnIdeas\Maintenance\Model\Package;
use BringYourOwnIdeas\UpdateChecker\Extensions\ComposerUpdateExtension;
use Package;
use PHPUnit_Framework_TestCase;
use SapphireTest;
use SilverStripe\Dev\SapphireTest;

/**
* @mixin PHPUnit_Framework_TestCase
Expand All @@ -14,7 +14,7 @@ class ComposerUpdateExtensionTest extends SapphireTest
{
protected static $fixture_file = 'ComposerUpdateExtensionTest.yml';

protected $requiredExtensions = [
protected static $required_extensions = [
Package::class => [
ComposerUpdateExtension::class,
],
Expand Down
2 changes: 1 addition & 1 deletion tests/Extensions/ComposerUpdateExtensionTest.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Package:
BringYourOwnIdeas\Maintenance\Model\Package:
up_to_date:
Name: silverstripe/package
Version: 1.2.0
Expand Down

0 comments on commit b693a09

Please sign in to comment.