Merge pull request #14239 from colemanw/haveACrack
[civicrm-core.git] / tests / phpunit / CiviTest / CiviTestSMSProvider.php
1 <?php
2 /*
3 +--------------------------------------------------------------------+
4 | CiviCRM version 5 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2019 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
9 | |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
13 | |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
18 | |
19 | You should have received a copy of the GNU Affero General Public |
20 | License along with this program; if not, contact CiviCRM LLC |
21 | at info[AT]civicrm[DOT]org. If you have questions about the |
22 | GNU Affero General Public License or the licensing of CiviCRM, |
23 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
24 +--------------------------------------------------------------------+
25 */
26
27 /**
28 * Test SMS provider to allow for testing
29 */
30 class CiviTestSMSProvider extends CRM_SMS_Provider {
31 protected $_providerInfo = array();
32 protected $_id = 0;
33 static private $_singleton = array();
34
35 public function __construct($provider, $skipAuth = TRUE) {
36 $this->provider = $provider;
37 }
38
39 public static function &singleton($providerParams = array(), $force = FALSE) {
40 if (isset($providerParams['provider'])) {
41 $providers = CRM_SMS_BAO_Provider::getProviders(NULL, array('name' => $providerParams['provider']));
42 $provider = current($providers);
43 $providerID = $provider['id'];
44 }
45 else {
46 $providerID = CRM_Utils_Array::value('provider_id', $providerParams);
47 }
48 $skipAuth = $providerID ? FALSE : TRUE;
49 $cacheKey = (int) $providerID;
50
51 if (!isset(self::$_singleton[$cacheKey]) || $force) {
52 $provider = array();
53 if ($providerID) {
54 $provider = CRM_SMS_BAO_Provider::getProviderInfo($providerID);
55 }
56 self::$_singleton[$cacheKey] = new CiviTestSMSProvider($provider, $skipAuth);
57 }
58 return self::$_singleton[$cacheKey];
59 }
60
61 public function send($recipients, $header, $message, $dncID = NULL) {
62 }
63
64 }