Skip to content
This repository has been archived by the owner on Jan 1, 2024. It is now read-only.

tienvx/pact-php-xml

Repository files navigation

Pact PHP XML Build Status Coverage Status Version PHP Version

This library contains classes support xml for Pact PHP.

Installation

composer require tienvx/pact-php-xml

Usage

<?php

require_once 'vendor/autoload.php';

use AaronDDM\XMLBuilder\Exception\XMLBuilderException;
use PhpPact\Consumer\Matcher;
use Tienvx\PactPhpXml\Model\Options;
use Tienvx\PactPhpXml\XmlBuilder;

$builder = new XmlBuilder();
$matcher = new Matcher();

try {
    $builder
        ->root(
            $builder->name('ns1:projects'),
            $builder->attribute('id', '1234'),
            $builder->attribute('xmlns:ns1', 'http://some.namespace/and/more/stuff'),
            $builder->add(
                $builder->eachLike(examples: 2),
                $builder->name('ns1:project'),
                $builder->attribute('id', $matcher->integerV3(1)),
                $builder->attribute('type', 'activity'),
                $builder->attribute('name', $matcher->string('Project 1')),
                $builder->attribute('due', $matcher->datetime("yyyy-MM-dd'T'HH:mm:ss.SZ", '2016-02-11T09:46:56.023Z')),
                $builder->add(
                    $builder->name('ns1:tasks'),
                    $builder->add(
                        $builder->eachLike(examples: 5),
                        $builder->name('ns1:task'),
                        $builder->attribute('id', $matcher->integerV3(1)),
                        $builder->attribute('name', $matcher->string('Task 1')),
                        $builder->attribute('done', $matcher->boolean()),
                    ),
                ),
            ),
        );

    var_dump($builder->getArray());
} catch (XMLBuilderException $e) {
    var_dump('An exception occurred: ' . $e->getMessage());
}

License

MIT