mailgun-php/tests/Api/TestCase.php

84 lines
2.1 KiB
PHP
Raw Normal View History

<?php
2016-11-24 01:02:12 +03:00
/*
* Copyright (C) 2013 Mailgun
2016-11-24 01:02:12 +03:00
*
* This software may be modified and distributed under the terms
2016-12-06 21:12:52 +03:00
* of the MIT license. See the LICENSE file for details.
2016-11-24 01:02:12 +03:00
*/
namespace Mailgun\Tests\Api;
use Mailgun\Mailgun;
/**
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
* @author Contributors of https://github.com/KnpLabs/php-github-api
*/
abstract class TestCase extends \PHPUnit_Framework_TestCase
{
2016-10-27 09:34:27 +03:00
/**
* Private Mailgun API key.
*
* @var string
*/
protected $apiPrivKey;
/**
* Public Mailgun API key.
*
* @var string
*/
protected $apiPubKey;
/**
* Domain used for API testing.
*
* @var string
*/
protected $testDomain;
protected function setUp()
2016-10-27 09:34:27 +03:00
{
$this->apiPrivKey = getenv('MAILGUN_PRIV_KEY');
$this->apiPubKey = getenv('MAILGUN_PUB_KEY');
$this->testDomain = getenv('MAILGUN_DOMAIN');
}
abstract protected function getApiClass();
protected function getApiMock($httpClient = null, $requestClient = null, $hydrator = null)
{
if (null === $httpClient) {
$httpClient = $this->getMockBuilder('Http\Client\HttpClient')
->setMethods(['sendRequest'])
->getMock();
$httpClient
->expects($this->any())
->method('sendRequest');
}
if (null === $requestClient) {
$requestClient = $this->getMockBuilder('Mailgun\RequestBuilder')
->setMethods(['create'])
->getMock();
}
if (null === $hydrator) {
$hydrator = $this->getMockBuilder('Mailgun\Hydrator\Hydrator')
->setMethods(['hydrate'])
->getMock();
}
return $this->getMockBuilder($this->getApiClass())
->setMethods(['httpGet', 'httpPost', 'httpPostRaw', 'httpDelete', 'httpPut'])
->setConstructorArgs([$httpClient, $requestClient, $hydrator])
->getMock();
}
2016-10-27 09:34:27 +03:00
protected function getMailgunClient()
{
return Mailgun::create($this->apiPrivKey);
2016-10-27 09:34:27 +03:00
}
}