Completed
Push — master ( 162ff2...83d928 )
by Peter
08:18 queued 10s
created

SpecSpec::it_creates_distinct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace tests\Happyr\DoctrineSpecification;
4
5
use Happyr\DoctrineSpecification\Filter\MemberOfX;
6
use Happyr\DoctrineSpecification\Logic\LogicX;
7
use Happyr\DoctrineSpecification\Operand\Addition;
8
use Happyr\DoctrineSpecification\Operand\Alias;
9
use Happyr\DoctrineSpecification\Operand\BitAnd;
10
use Happyr\DoctrineSpecification\Operand\BitOr;
11
use Happyr\DoctrineSpecification\Operand\CountDistinct;
12
use Happyr\DoctrineSpecification\Operand\Division;
13
use Happyr\DoctrineSpecification\Operand\Modulo;
14
use Happyr\DoctrineSpecification\Operand\Multiplication;
15
use Happyr\DoctrineSpecification\Operand\PlatformFunction;
16
use Happyr\DoctrineSpecification\Operand\Subtraction;
17
use Happyr\DoctrineSpecification\Query\AddSelect;
18
use Happyr\DoctrineSpecification\Query\Distinct;
19
use Happyr\DoctrineSpecification\Query\Select;
20
use Happyr\DoctrineSpecification\Query\Selection\SelectAs;
21
use Happyr\DoctrineSpecification\Query\Selection\SelectEntity;
22
use Happyr\DoctrineSpecification\Query\Selection\SelectHiddenAs;
23
use Happyr\DoctrineSpecification\Spec;
24
use PhpSpec\ObjectBehavior;
25
26
/**
27
 * @mixin Spec
28
 */
29
class SpecSpec extends ObjectBehavior
30
{
31
    public function it_creates_an_x_specification()
32
    {
33
        $this->andX()->shouldReturnAnInstanceOf(LogicX::class);
34
    }
35
36
    public function it_creates_distinct()
37
    {
38
        $this->distinct()->shouldReturnAnInstanceOf(Distinct::class);
39
    }
40
41
    public function it_creates_count_distinct()
42
    {
43
        $this->countDistinct('foo')->shouldReturnAnInstanceOf(CountDistinct::class);
44
    }
45
46
    public function it_creates_add_operand()
47
    {
48
        $this->add('foo', 'bar')->shouldReturnAnInstanceOf(Addition::class);
49
    }
50
51
    public function it_creates_sub_operand()
52
    {
53
        $this->sub('foo', 'bar')->shouldReturnAnInstanceOf(Subtraction::class);
54
    }
55
56
    public function it_creates_mul_operand()
57
    {
58
        $this->mul('foo', 'bar')->shouldReturnAnInstanceOf(Multiplication::class);
59
    }
60
61
    public function it_creates_div_operand()
62
    {
63
        $this->div('foo', 'bar')->shouldReturnAnInstanceOf(Division::class);
64
    }
65
66
    public function it_creates_mod_operand()
67
    {
68
        $this->mod('foo', 'bar')->shouldReturnAnInstanceOf(Modulo::class);
69
    }
70
71
    public function it_create_bit_and_operand()
72
    {
73
        $this->bAnd('foo', 'bar')->shouldReturnAnInstanceOf(BitAnd::class);
74
    }
75
76
    public function it_create_bit_or_operand()
77
    {
78
        $this->bOr('foo', 'bar')->shouldReturnAnInstanceOf(BitOr::class);
79
    }
80
81
    public function it_creates_an_function()
82
    {
83
        $this->fun('UPPER', 'arg')->shouldReturnAnInstanceOf(PlatformFunction::class);
84
    }
85
86
    public function it_creates_an_function_with_many_args()
87
    {
88
        $this->fun('CONCAT', 'a', 'b')->shouldReturnAnInstanceOf(PlatformFunction::class);
89
    }
90
91
    public function it_creates_an_function_with_many_args_as_array()
92
    {
93
        $this->fun('CONCAT', ['a', 'b'])->shouldReturnAnInstanceOf(PlatformFunction::class);
94
    }
95
96
    public function it_creates_an_magic_function()
97
    {
98
        $this->__callStatic('UPPER', ['arg'])->shouldReturnAnInstanceOf(PlatformFunction::class);
99
    }
100
101
    public function it_creates_an_magic_function_many_args()
102
    {
103
        $this->__callStatic('CONCAT', ['a', 'b'])->shouldReturnAnInstanceOf(PlatformFunction::class);
104
    }
105
106
    public function it_creates_an_magic_function_many_args_inner()
107
    {
108
        $this->__callStatic('CONCAT', [['a', 'b']])->shouldReturnAnInstanceOf(PlatformFunction::class);
109
    }
110
111
    public function it_creates_select_query_modifier()
112
    {
113
        $this->select('foo')->shouldReturnAnInstanceOf(Select::class);
114
    }
115
116
    public function it_creates_add_select_query_modifier()
117
    {
118
        $this->addSelect('foo')->shouldReturnAnInstanceOf(AddSelect::class);
119
    }
120
121
    public function it_creates_select_entity_selection()
122
    {
123
        $this->selectEntity('u')->shouldReturnAnInstanceOf(SelectEntity::class);
124
    }
125
126
    public function it_creates_select_as_selection()
127
    {
128
        $this->selectAs('foo', 'bar')->shouldReturnAnInstanceOf(SelectAs::class);
129
    }
130
131
    public function it_creates_select_hidden_as_selection()
132
    {
133
        $this->selectHiddenAs('foo', 'bar')->shouldReturnAnInstanceOf(SelectHiddenAs::class);
134
    }
135
136
    public function it_creates_alias_operand()
137
    {
138
        $this->alias('foo')->shouldReturnAnInstanceOf(Alias::class);
139
    }
140
141
    public function it_creates_member_of_filter()
142
    {
143
        $this->memberOfX('foo', 'bar')->shouldReturnAnInstanceOf(MemberOfX::class);
144
    }
145
}
146