Test Failed
Push — main ( 41eab8...0a6cd6 )
by Daniel
02:07
created

testGetRemoteInvoiceIntoArrayAsExample2()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 6
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 8
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
require_once __DIR__ . '/../vendor/autoload.php';
6
7
use PHPUnit\Framework\Attributes\CoversClass;
8
use PHPUnit\Framework\TestCase;
9
10
#[CoversClass(\danielgp\efactura\ElectornicInvoiceRead::class)]
11
#[CoversClass(\danielgp\efactura\ElectornicInvoiceWrite::class)]
12
final class ReadWriteTest extends TestCase
13
{
14
15
    const REMOTE_UBL_EXAMPLES_PATH = 'https://raw.githubusercontent.com/ConnectingEurope/eInvoicing-EN16931/'
16
        . 'master/ubl/examples/';
17
    const LOCAL_RESULT_FILE        = __DIR__ . '/resultWrite.xml';
18
19
    public function testReadRemoteXml()
20
    {
21
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example1.xml';
22
        $xmlContent = file_get_contents($url);
23
        $this->assertNotEmpty($xmlContent);
24
    }
25
26
    public function testGetRemoteInvoiceIntoArrayAsExample1()
27
    {
28
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example1.xml';
29
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
30
        $arrayData  = $classRead->readElectronicInvoice($url);
31
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
32
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
33
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
34
    }
35
36
    public function testGetRemoteInvoiceIntoArrayAsExample2()
37
    {
38
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example2.xml';
39
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
40
        $arrayData  = $classRead->readElectronicInvoice($url);
41
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
42
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
43
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
44
    }
45
46
    public function testGetRemoteInvoiceIntoArrayAsExample3()
47
    {
48
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example3.xml';
49
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
50
        $arrayData  = $classRead->readElectronicInvoice($url);
51
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
52
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
53
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
54
    }
55
56
    public function testGetRemoteInvoiceIntoArrayAsExample4()
57
    {
58
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example4.xml';
59
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
60
        $arrayData  = $classRead->readElectronicInvoice($url);
61
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
62
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
63
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
64
    }
65
66
    public function testGetRemoteInvoiceIntoArrayAsExample6()
67
    {
68
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example6.xml';
69
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
70
        $arrayData  = $classRead->readElectronicInvoice($url);
71
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
72
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
73
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
74
    }
75
76
    public function testGetRemoteInvoiceIntoArrayAsExample7()
77
    {
78
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example7.xml';
79
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
80
        $arrayData  = $classRead->readElectronicInvoice($url);
81
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
82
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
83
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
84
    }
85
86
    public function testGetRemoteInvoiceIntoArrayAsExample8()
87
    {
88
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example8.xml';
89
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
90
        $arrayData  = $classRead->readElectronicInvoice($url);
91
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
92
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
93
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
94
    }
95
96
    public function testGetRemoteInvoiceIntoArrayAsExample9()
97
    {
98
        $url        = self::REMOTE_UBL_EXAMPLES_PATH . 'ubl-tc434-example9.xml';
99
        $classRead  = new \danielgp\efactura\ElectornicInvoiceRead();
100
        $arrayData  = $classRead->readElectronicInvoice($url);
101
        $classWrite = new \danielgp\efactura\ElectornicInvoiceWrite();
102
        $classWrite->writeElectronicInvoice(self::LOCAL_RESULT_FILE, $arrayData, false, true);
103
        $this->assertXmlFileEqualsXmlFile($url, self::LOCAL_RESULT_FILE);
104
    }
105
106
    public function tearDown(): void
107
    {
108
        unlink(self::LOCAL_RESULT_FILE);
109
    }
110
}
111