From eaf2efe5dbe08d49e674a904aed46b05f75a02bd Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 22 Jan 2018 11:10:49 +0100 Subject: Update to 1.0 rename to php-mockery and move to /usr/share/php/Mockery1 raise dependency on PHP 5.6 raise dependency on hamcrest/hamcrest-php 2.0 use phpunit6 on F26+ --- .gitignore | 8 ++++ 798.patch | 47 ++++++++++++++++++++++ composer.json | 27 +++++++++---- mockery-tests.patch | 16 ++++++++ php-mockery.spec | 112 +++++++++++++++++++++++++++++++--------------------- 5 files changed, 158 insertions(+), 52 deletions(-) create mode 100644 .gitignore create mode 100644 798.patch create mode 100644 mockery-tests.patch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fc9aa8c --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +clog +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/798.patch b/798.patch new file mode 100644 index 0000000..f0e29fb --- /dev/null +++ b/798.patch @@ -0,0 +1,47 @@ +diff -up tests/Mockery/DemeterChainTest.php.test tests/Mockery/DemeterChainTest.php +diff -up tests/Mockery/ExpectationTest.php.test tests/Mockery/ExpectationTest.php +--- tests/Mockery/ExpectationTest.php.test 2017-10-06 18:20:43.000000000 +0200 ++++ tests/Mockery/ExpectationTest.php 2018-01-22 10:42:30.193764672 +0100 +@@ -1309,14 +1309,14 @@ class ExpectationTest extends MockeryTes + + public function testObjectConstraintMatchesArgument() + { +- $this->mock->shouldReceive('foo')->with(Mockery::type('object'))->once(); ++ $this->mock->shouldReceive('foo')->with(Mockery::type('stdClass'))->once(); + $this->mock->foo(new stdClass); + } + + public function testObjectConstraintNonMatchingCase() + { + $this->mock->shouldReceive('foo')->times(3); +- $this->mock->shouldReceive('foo')->with(1, Mockery::type('object`'))->never(); ++ $this->mock->shouldReceive('foo')->with(1, Mockery::type('stdClass`'))->never(); + $this->mock->foo(); + $this->mock->foo(1); + $this->mock->foo(1, 2, 3); +@@ -1327,7 +1327,7 @@ class ExpectationTest extends MockeryTes + */ + public function testObjectConstraintThrowsExceptionWhenConstraintUnmatched() + { +- $this->mock->shouldReceive('foo')->with(Mockery::type('object')); ++ $this->mock->shouldReceive('foo')->with(Mockery::type('stdClass')); + $this->mock->foo('f'); + Mockery::close(); + } +diff -up tests/Mockery/NamedMockTest.php.test tests/Mockery/NamedMockTest.php +--- tests/Mockery/NamedMockTest.php.test 2017-10-06 18:20:43.000000000 +0200 ++++ tests/Mockery/NamedMockTest.php 2018-01-22 10:40:50.894254568 +0100 +@@ -35,11 +35,11 @@ class NamedMockTest extends MockeryTestC + /** @test */ + public function itCreatesPassesFurtherArgumentsJustLikeMock() + { +- $mock = Mockery::namedMock("Mockery\Dave456", "DateTime", array( ++ $mock = Mockery::namedMock("Mockery\Dave456", "DateTimeZone", array( + "getDave" => "dave" + )); + +- $this->assertInstanceOf("DateTime", $mock); ++ $this->assertInstanceOf("DateTimeZone", $mock); + $this->assertEquals("dave", $mock->getDave()); + } + diff --git a/composer.json b/composer.json index d538f0d..5961925 100644 --- a/composer.json +++ b/composer.json @@ -1,8 +1,19 @@ { "name": "mockery/mockery", "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", - "keywords": ["library", "testing", "test", "stub", "mock", "mockery", "test double", "tdd", "bdd", "mock objects"], - "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "bdd", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "tdd", + "test", + "test double", + "testing" + ], + "homepage": "http://github.com/mockery/mockery", "license": "BSD-3-Clause", "authors": [ { @@ -17,19 +28,21 @@ } ], "require": { - "php": ">=5.3.2", + "php": ">=5.6.0", "lib-pcre": ">=7.0", - "hamcrest/hamcrest-php": "~1.1" + "hamcrest/hamcrest-php": "~2.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~5.7|~6.1" }, "autoload": { - "psr-0": { "Mockery": "library/" } + "psr-0": { + "Mockery": "library/" + } }, "extra": { "branch-alias": { - "dev-master": "0.9.x-dev" + "dev-master": "1.0.x-dev" } } } diff --git a/mockery-tests.patch b/mockery-tests.patch new file mode 100644 index 0000000..4955127 --- /dev/null +++ b/mockery-tests.patch @@ -0,0 +1,16 @@ +diff -up tests/Bootstrap.php.rpm tests/Bootstrap.php +--- tests/Bootstrap.php.rpm 2018-01-22 10:30:27.396051495 +0100 ++++ tests/Bootstrap.php 2018-01-22 10:36:43.834985419 +0100 +@@ -50,11 +50,7 @@ if (!file_exists($autoloadPath)) { + + require_once $autoloadPath; + +-$hamcrestRelativePath = 'hamcrest/hamcrest-php/hamcrest/Hamcrest.php'; +-if (DIRECTORY_SEPARATOR !== '/') { +- $hamcrestRelativePath = str_replace('/', DIRECTORY_SEPARATOR, $hamcrestRelativePath); +-} +-$hamcrestPath = $composerVendorDirectory . DIRECTORY_SEPARATOR . $hamcrestRelativePath; ++$hamcrestPath = '/usr/share/php/Hamcrest2/Hamcrest.php'; + + require_once $hamcrestPath; + diff --git a/php-mockery.spec b/php-mockery.spec index 818a9bd..f8159b2 100644 --- a/php-mockery.spec +++ b/php-mockery.spec @@ -1,4 +1,4 @@ -# remirepo spec file for php-deepend-Mockery, from +# remirepo spec file for php-mockery, from # # Fedora spec file for php-deepend-Mockery # @@ -7,50 +7,62 @@ # # Please preserve changelog entries # -%global gh_commit 6fdb61243844dc924071d3404bb23994ea0b6856 +%global gh_commit 1bac8c362b12f522fdd1f1fa3556284c91affa38 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner padraic %global gh_project mockery +%global ns_project Mockery +%global major 1 %global with_tests 0%{!?_without_tests:1} -Name: php-deepend-Mockery -Version: 0.9.9 -Release: 4%{?dist} +Name: php-mockery +Version: 1.0 +Release: 1%{?dist} Summary: Mockery is a simple but flexible PHP mock object framework Group: Development/Libraries License: BSD URL: https://github.com/%{gh_owner}/%{gh_project} -Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz - -# Autoloader -Source1: %{gh_project}-autoload.php +Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{name}-%{version}-%{gh_short}.tar.gz # Use our autoloader Patch0: %{gh_project}-tests.patch -# Upstream patch for 7.2 -Patch1: https://github.com/mockery/mockery/commit/b2f20b33942c2c84bc3b3b169098b448b3e66737.patch -Patch2: https://patch-diff.githubusercontent.com/raw/mockery/mockery/pull/798.patch +# Patch for 7.2 +# From https://github.com/mockery/mockery/pull/798 +Patch2: 798.patch BuildArch: noarch %if %{with_tests} # From composer.json, "require-dev": { -# "phpunit/phpunit": "~4.0" -BuildRequires: php-composer(phpunit/phpunit) >= 4.0 -BuildRequires: php(language) >= 5.3.2 -BuildRequires: php-composer(hamcrest/hamcrest-php) >= 1.1 +# "phpunit/phpunit": "~5.7|~6.1" +%if 0%{?fedora} >= 26 +%global phpunit %{_bindir}/phpunit6 +BuildRequires: phpunit6 +%else +%global phpunit %{_bindir}/phpunit +BuildRequires: php-phpunit-PHPUnit >= 5.7 +%endif +BuildRequires: php(language) >= 5.6.0 +%if 0%{?fedora} >= 27 +BuildRequires: (php-composer(hamcrest/hamcrest-php) >= 2.0 with php-composer(hamcrest/hamcrest-php) < 3) +%else +BuildRequires: php-hamcrest2 +%endif # Autoloader -BuildRequires: php-composer(fedora/autoloader) %endif +BuildRequires: php-fedora-autoloader-devel # From composer.json, "require": { -# "php": ">=5.3.2", +# "php": ">=5.6.0", # "lib-pcre": ">=7.0", -# "hamcrest/hamcrest-php": "~1.1" -Requires: php(language) >= 5.3.2 -Requires: php-composer(hamcrest/hamcrest-php) >= 1.1 -Requires: php-composer(hamcrest/hamcrest-php) < 2 -# From phpcompatinfo report for version 0.9.7 +# "hamcrest/hamcrest-php": "~2.0" +Requires: php(language) >= 5.6.0 +%if 0%{?fedora} >= 27 +Requires: (php-composer(hamcrest/hamcrest-php) >= 2.0 with php-composer(hamcrest/hamcrest-php) < 3) +%else +Requires: php-hamcrest2 +%endif +# From phpcompatinfo report for version 1.0 Requires: php-pcre Requires: php-spl Requires: php-reflection @@ -58,8 +70,6 @@ Requires: php-reflection Requires: php-composer(fedora/autoloader) Provides: php-composer(mockery/mockery) = %{version} -Provides: php-pear(pear.survivethedeepend.com/Mockery) = %{version} -Obsoletes: php-channel-deepend <= 1.3 %description @@ -67,17 +77,26 @@ Mockery is a simple but flexible PHP mock object framework for use in unit testing. It is inspired by Ruby's flexmock and Java's Mockito, borrowing elements from both of their APIs. -To use this library, you just have to add, in your project: - require_once '%{_datadir}/php/Mockery/autoload.php'; +Autoloader: %{_datadir}/php/%{ns_project}%{major}/autoload.php %prep %setup -q -n %{gh_project}-%{gh_commit} -cp %{SOURCE1} library/Mockery/autoload.php +mv library/*.php library/%{ns_project}/ +phpab --template fedora --output library/%{ns_project}/autoload.php library + +cat << 'EOF' | tee -a library/%{ns_project}/autoload.php + +\Fedora\Autoloader\Dependencies::required([ + '/usr/share/php/Hamcrest2/autoload.php', +]); +EOF + %patch0 -p0 -b .rpm -%patch1 -p1 -%patch2 -p1 +%patch2 -p0 -b .test + +rm -f docs/.gitignore %build @@ -86,42 +105,45 @@ cp %{SOURCE1} library/Mockery/autoload.php %install mkdir -p %{buildroot}/%{_datadir}/php -cp -rp library/* %{buildroot}/%{_datadir}/php/ +cp -rp library/%{ns_project} %{buildroot}/%{_datadir}/php/%{ns_project}%{major} %check %if %{with_tests} : Use installed tree and our autoloader -sed -e 's:@BUILD@:%{buildroot}/%{_datadir}/php:' -i tests/Bootstrap.php +export COMPOSER_VENDOR_DIR=%{buildroot}%{_datadir}/php/%{ns_project}%{major} : Run upstream test suite ret=0 -for cmd in php php56 php70 php71 php72; do - if which $cmd; then - $cmd %{_bindir}/phpunit --verbose || ret=1 - fi +for cmd in "php %{phpunit}" php70 php71 php72; do + if which $cmd; then + set $cmd + $1 ${2:-%{_bindir}/phpunit6} \ + --no-coverage \ + --verbose || ret=1 + fi done exit $ret %endif -%post -if [ -x %{_bindir}/pear ]; then - %{_bindir}/pear uninstall --nodeps --ignore-errors --register-only \ - pear.survivethedeepend.com/Mockery >/dev/null || : -fi - %files %{!?_licensedir:%global license %%doc} %license LICENSE -%doc README.md docs +%doc *.md docs %doc composer.json -%{_datadir}/php/Mockery/ -%{_datadir}/php/Mockery.php +%{_datadir}/php/%{ns_project}%{major} %changelog +* Mon Jan 22 2018 Remi Collet - 1.0-1 +- Update to 1.0 +- rename to php-mockery and move to /usr/share/php/Mockery1 +- raise dependency on PHP 5.6 +- raise dependency on hamcrest/hamcrest-php 2.0 +- use phpunit6 on F26+ + * Fri Oct 6 2017 Remi Collet - 0.9.9-4 - add patches for PHP 7.2 -- cgit