Completed
Pull Request — master (#110)
by Christopher
09:46 queued 05:16
created

TAnnotationTypeTest::testSetStringObjectAsString()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
rs 9.4285
cc 2
eloc 9
nc 2
nop 0
1
<?php
2
3
namespace AlgoWeb\ODataMetadata\Tests\v3\edm;
4
5
use AlgoWeb\ODataMetadata\MetadataV3\edm\TTypeAnnotationType;
6
use AlgoWeb\ODataMetadata\Tests\TestCase;
7
8
class TAnnotationTypeTest extends TestCase
9
{
10
    public function testSetStringNullString()
11
    {
12
        $foo = new TTypeAnnotationType();
13
        $foo->setString(null);
14
        $this->assertEquals(null, $foo->getString());
15
    }
16
17
    public function testSetStringActualString()
18
    {
19
        $foo = new TTypeAnnotationType();
20
        $foo->setString("string");
21
        $this->assertEquals('string', $foo->getString());
22
    }
23
24
    public function testSetStringEmptyArrayAsString()
25
    {
26
        $expected = "String must be a string";
27
        $actual = null;
28
29
        $foo = new TTypeAnnotationType();
30
        try {
31
            $foo->setString([]);
1 ignored issue
show
Documentation introduced by
array() is of type array, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
32
        } catch (\InvalidArgumentException $e) {
33
            $actual = $e->getMessage();
34
        }
35
        $this->assertEquals($expected, $actual);
36
    }
37
38
    public function testSetStringNonEmptyArrayAsString()
39
    {
40
        $expected = "String must be a string";
41
        $actual = null;
42
43
        $foo = new TTypeAnnotationType();
44
        try {
45
            $foo->setString(['a']);
1 ignored issue
show
Documentation introduced by
array('a') is of type array<integer,string,{"0":"string"}>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
46
        } catch (\InvalidArgumentException $e) {
47
            $actual = $e->getMessage();
48
        }
49
        $this->assertEquals($expected, $actual);
50
    }
51
52
    public function testSetStringObjectAsString()
53
    {
54
        $expected = "String must be a string";
55
        $actual = null;
56
57
        $foo = new TTypeAnnotationType();
58
        try {
59
            $foo->setString(new \DateTime());
1 ignored issue
show
Documentation introduced by
new \DateTime() is of type object<DateTime>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
60
        } catch (\InvalidArgumentException $e) {
61
            $actual = $e->getMessage();
62
        }
63
        $this->assertEquals($expected, $actual);
64
    }
65
}
66