Code Duplication    Length = 16-18 lines in 4 locations

spec/ClientSpec.php 4 locations

@@ 115-132 (lines=18) @@
112
        $this->getRedirectLocation('/')->shouldBe('http://test.test');
113
    }
114
115
    public function it_processes_json_error_responses(ClientErrorException $exception)
116
    {
117
        $exception->getResponse()->willReturn(new Response(
118
            400,
119
            ['Content-Type' => 'application/json;charset=utf-8'],
120
            SpecHelper::getDummyData('error_response.json', false)
121
        ));
122
123
        $http = $this->let();
124
        $http->addException($exception->getWrappedObject());
125
126
        $this->shouldThrow(new RequestFailed(
127
            'Mandatory field is missing: library',
128
            '401664'
129
        ))->during('getJSON', ['/items/123']);
130
131
        expect($http->getRequests())->toHaveCount(1);
132
    }
133
134
    public function it_processes_xml_error_responses(ClientErrorException $exception)
135
    {
@@ 134-151 (lines=18) @@
131
        expect($http->getRequests())->toHaveCount(1);
132
    }
133
134
    public function it_processes_xml_error_responses(ClientErrorException $exception)
135
    {
136
        $exception->getResponse()->willReturn(new Response(
137
            400,
138
            ['Content-Type' => 'application/xml;charset=utf-8'],
139
            SpecHelper::getDummyData('error_response.xml', false)
140
        ));
141
142
        $http = $this->let();
143
        $http->addException($exception->getWrappedObject());
144
145
        $this->shouldThrow(new RequestFailed(
146
            'Mandatory field is missing: library',
147
            '401664'
148
        ))->during('getXML', ['/items/123']);
149
150
        expect($http->getRequests())->toHaveCount(1);
151
    }
152
153
    public function it_can_throw_resource_not_found(ClientErrorException $exception)
154
    {
@@ 153-168 (lines=16) @@
150
        expect($http->getRequests())->toHaveCount(1);
151
    }
152
153
    public function it_can_throw_resource_not_found(ClientErrorException $exception)
154
    {
155
        $exception->getResponse()->willReturn(new Response(
156
            400,
157
            ['Content-Type' => 'application/json;charset=utf-8'],
158
            SpecHelper::getDummyData('item_barcode_error_response.json', false)
159
        ));
160
161
        $http = $this->let();
162
        $http->addException($exception->getWrappedObject());
163
164
        $this->shouldThrow(new ResourceNotFound('No items found for barcode 123.', '401689'))
165
            ->during('getJSON', ['/items/123']);
166
167
        expect($http->getRequests())->toHaveCount(1);
168
    }
169
170
    public function it_can_throw_invalid_api_key(ClientErrorException $exception)
171
    {
@@ 170-185 (lines=16) @@
167
        expect($http->getRequests())->toHaveCount(1);
168
    }
169
170
    public function it_can_throw_invalid_api_key(ClientErrorException $exception)
171
    {
172
        $exception->getResponse()->willReturn(new Response(
173
            400,
174
            ['Content-Type' => 'text/plain;charset=UTF-8'],
175
            'Invalid API Key'
176
        ));
177
178
        $http = $this->let();
179
        $http->addException($exception->getWrappedObject());
180
181
        $this->shouldThrow(new InvalidApiKey('Invalid API Key', 0))
182
           ->during('getJSON', ['/items/123']);
183
184
        expect($http->getRequests())->toHaveCount(1);
185
    }
186
187
    public function it_will_retry_when_reaching_rate_limit(ClientErrorException $exception)
188
    {