actionIdentifierGeneratorTest.php$0   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 4
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
wmc 1
1
<?php
2
3
/**
4
 * Copyright 2017 American Express Travel Related Services Company, Inc.
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 * http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
15
 * or implied. See the License for the specific language governing
16
 * permissions and limitations under the License.
17
 */
18
19
declare(strict_types=1);
20
21
namespace AmericanExpressTest\HyperledgerFabricClient\Transaction;
22
23
use AmericanExpress\HyperledgerFabricClient\Nonce\NonceGeneratorInterface;
24
use AmericanExpress\HyperledgerFabricClient\ProtoFactory\SerializedIdentityFactory;
25
use AmericanExpress\HyperledgerFabricClient\Transaction\TransactionIdentifier;
26
use AmericanExpress\HyperledgerFabricClient\Transaction\TransactionIdentifierGenerator;
27
use AmericanExpress\HyperledgerFabricClient\Transaction\TransactionIdentifierGeneratorInterface;
28
use org\bovigo\vfs\vfsStream;
29
use PHPUnit\Framework\TestCase;
30
31
/**
32
 * @covers \AmericanExpress\HyperledgerFabricClient\Transaction\TransactionIdentifierGenerator
33
 */
34
class TransactionIdentifierGeneratorTest extends TestCase
35
{
36
    /**
37
     * @var TransactionIdentifierGeneratorInterface
38
     */
39
    private $sut;
40
41
    protected function setUp()
42
    {
43
        $this->sut = new TransactionIdentifierGenerator(new class implements NonceGeneratorInterface {
44
            public function generateNonce(): string
45
            {
46
                return 'qur48f7e9';
47
            }
48
        });
49
    }
50
51
    public function testCreateTxId()
52
    {
53
        $files = vfsStream::setup('test');
54
55
        $certs = vfsStream::newFile('foo');
56
        $certs->setContent('FizBuz');
57
        $files->addChild($certs);
58
59
        $serializedIdentity = SerializedIdentityFactory::fromBytes('FooBar', 'FizBuz');
60
61
        $result = $this->sut->fromSerializedIdentity($serializedIdentity);
62
63
        self::assertInstanceOf(TransactionIdentifier::class, $result);
64
        self::assertInternalType('string', $result->getId());
65
        self::assertNotEmpty($result);
66
        self::assertSame('qur48f7e9', $result->getNonce());
67
    }
68
}
69