Subject: [PATCH v5 54/54] gnu: Add php-phpunit-phpunit.

From: Nicolas Graves <[email-masked]>
Date: Fri, 18 Oct 2024 01:06:17 +0200

* gnu/packages/php-bootstrap.scm (php-phpunit-phpunit): New variable.
---
 gnu/packages/php-bootstrap.scm | 58 ++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/gnu/packages/php-bootstrap.scm b/gnu/packages/php-bootstrap.scm
index f17d9c0540..dee03646c9 100644
--- a/gnu/packages/php-bootstrap.scm
+++ b/gnu/packages/php-bootstrap.scm
@@ -1297,3 +1297,61 @@ (define-public php-webmozart-assert
 and output of PHP methods.")
     (home-page "https://github.com/webmozarts/assert")
     (license license:expat)))
+
+(define-public php-phpunit-phpunit
+  (package
+    (name "phpunit")
+    (version "9.6.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sebastianbergmann/phpunit")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1248vzymxaz0hqrmrddm6f275xb9hlznawxwksncrg5xacjl5260"))))
+    (build-system composer-build-system)
+    (arguments
+     ;; Requires phpspec/prophecy-phpunit, which in turns requires phpunit.
+     `(#:tests? #f))
+    (inputs
+     (letrec* ((package-list
+                (list php-doctrine-instantiator
+                      php-myclabs-deep-copy
+                      php-phar-io-manifest
+                      php-phar-io-version
+                      php-phpspec-prophecy
+                      php-phpunit-php-code-coverage
+                      php-phpunit-php-file-iterator
+                      php-phpunit-php-invoker
+                      php-phpunit-php-text-template
+                      php-phpunit-php-timer
+                      php-sebastian-cli-parser
+                      php-sebastian-code-unit
+                      php-sebastian-comparator
+                      php-sebastian-diff
+                      php-sebastian-environment
+                      php-sebastian-exporter
+                      php-sebastian-global-state
+                      php-sebastian-object-enumerator
+                      php-sebastian-recursion-context
+                      php-sebastian-resource-operations
+                      php-sebastian-type
+                      php-sebastian-version))
+               (rewrite
+                (lambda (p)
+                  (package
+                    (inherit p)
+                    (arguments '(#:tests? #f))
+                    (native-inputs '())
+                    (inputs (map (compose rewrite cadr) (package-inputs p)))
+                    ;; This is a hack for guix refresh.
+                    (location (package-location p))))))
+       (map rewrite package-list)))
+    (synopsis "PHP Unit Testing framework")
+    (description "PHPUnit is a testing framework for PHP.  It is an instance of
+the xUnit architecture for unit testing frameworks.")
+    (home-page "https://phpunit.de/")
+    (properties '((upstream-name . "phpunit/phpunit")))
+    (license license:bsd-3)))
-- 
2.46.0