AbstractOptionsTest   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 62
rs 10
c 0
b 0
f 0
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A testSetOptionStripsUnderscores() 0 7 1
A testSetInvalidOption() 0 4 1
A testSetOptionFromIteratorConstructorArg() 0 7 1
A testSetOptionStripsHyphens() 0 7 1
A testDefault() 0 5 1
A testSetOptionFromArrayConstructorArg() 0 7 1
A testSetOptionIsCaseInsensitive() 0 7 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\Options;
22
23
use AmericanExpressTest\HyperledgerFabricClient\TestAsset\FakeOptions;
24
use PHPUnit\Framework\TestCase;
25
26
/**
27
 * @covers \AmericanExpress\HyperledgerFabricClient\Options\AbstractOptions
28
 */
29
class AbstractOptionsTest extends TestCase
30
{
31
    public function testDefault()
32
    {
33
        $sut = new FakeOptions();
34
35
        self::assertNull($sut->getFooBar());
36
    }
37
38
    public function testSetOptionFromArrayConstructorArg()
39
    {
40
        $sut = new FakeOptions([
41
            'FooBar' => 'FizBuz',
42
        ]);
43
44
        self::assertSame('FizBuz', $sut->getFooBar());
45
    }
46
47
    public function testSetOptionFromIteratorConstructorArg()
48
    {
49
        $sut = new FakeOptions(new \ArrayIterator([
0 ignored issues
show
Bug introduced by
new ArrayIterator(array('FooBar' => 'FizBuz')) of type ArrayIterator is incompatible with the type iterable expected by parameter $options of AmericanExpressTest\Hype...eOptions::__construct(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

49
        $sut = new FakeOptions(/** @scrutinizer ignore-type */ new \ArrayIterator([
Loading history...
50
            'FooBar' => 'FizBuz',
51
        ]));
52
53
        self::assertSame('FizBuz', $sut->getFooBar());
54
    }
55
56
    public function testSetOptionIsCaseInsensitive()
57
    {
58
        $sut = new FakeOptions([
59
            'foobar' => 'FizBuz',
60
        ]);
61
62
        self::assertSame('FizBuz', $sut->getFooBar());
63
    }
64
65
    public function testSetOptionStripsUnderscores()
66
    {
67
        $sut = new FakeOptions([
68
            '_Foo_Bar_' => 'FizBuz',
69
        ]);
70
71
        self::assertSame('FizBuz', $sut->getFooBar());
72
    }
73
74
    public function testSetOptionStripsHyphens()
75
    {
76
        $sut = new FakeOptions([
77
            '-Foo-Bar-' => 'FizBuz',
78
        ]);
79
80
        self::assertSame('FizBuz', $sut->getFooBar());
81
    }
82
83
    /**
84
     * @expectedException \AmericanExpress\HyperledgerFabricClient\Exception\BadMethodCallException
85
     * @expectedExceptionMessage FakeOptions::setAlice is not callable.
86
     */
87
    public function testSetInvalidOption()
88
    {
89
        new FakeOptions([
90
            'Alice' => 'Bob',
91
        ]);
92
    }
93
}
94