/** * @covers ::send * @covers ::buildRequest * @covers ::getGzippedBody * @covers ::getAuthorization */ public function testSend() { $container = array(); $history = Middleware::history($container); $mockHandler = new MockHandler(array(new Response(200, array(), 'Everything OK'))); $stack = HandlerStack::create($mockHandler); $stack->push($history); // $stack->push($mockHandler); $http = new GuzzleAdapter(new GuzzleClient(array('handler' => $stack))); $client = new Client('aaaaa', 'bbbbb', $http); $message = new Message('http://www.example.com/', $client); $message->set('foo', 'bar'); // Call send() and ensure the right response was returned (which we set up above) $response = $message->send(); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals('Everything OK', $response->getBody()); // Ensure the request has everything that should be there $this->assertCount(1, $container); $request = $container[0]['request']; $this->assertEquals('POST', $request->getMethod()); $this->assertEquals('http://www.example.com/', (string) $request->getUri()); $this->assertEquals('gzip', $request->getHeaderLine('Content-Encoding')); $this->assertEquals('application/json', $request->getHeaderLine('Content-Type')); $this->assertEquals('2Isi0VhuV8oniANJzAZVBEZ3DSAKmP0hQrVh3jbUNaQ=', $request->getHeaderLine('Authorization')); $this->assertEquals('H4sIAAAAAAAAA6tWSsvPV7JSSkosUqoFAO/1K/4NAAAA', base64_encode((string) $request->getBody())); }
/** * Get a new event message for the given category. * * @param string $category * @return \MaartenStaa\GameAnalytics\Message */ public function event($category) { $message = new Message($this->getEndpoint('events'), $this); $message->set('category', $category); return $message; }