Merge pull request #19057 from ixiam/dev/core#2173
[civicrm-core.git] / tests / phpunit / CiviTest / CiviTestSMSProvider.php
CommitLineData
1a7f0799
MW
1<?php
2/*
3 +--------------------------------------------------------------------+
7d61e75f 4 | Copyright CiviCRM LLC. All rights reserved. |
1a7f0799 5 | |
7d61e75f
TO
6 | This work is published under the GNU AGPLv3 license with some |
7 | permitted exceptions and without any warranty. For full license |
8 | and copyright information, see https://civicrm.org/licensing |
1a7f0799
MW
9 +--------------------------------------------------------------------+
10 */
11
12 /**
13 * Test SMS provider to allow for testing
14 */
15class CiviTestSMSProvider extends CRM_SMS_Provider {
affcc9d2 16 protected $_providerInfo = [];
1a7f0799 17 protected $_id = 0;
affcc9d2 18 static private $_singleton = [];
1a7f0799
MW
19
20 public function __construct($provider, $skipAuth = TRUE) {
21 $this->provider = $provider;
22 }
23
affcc9d2 24 public static function &singleton($providerParams = [], $force = FALSE) {
1a7f0799
MW
25 if (isset($providerParams['provider'])) {
26 $providers = CRM_SMS_BAO_Provider::getProviders(NULL, array('name' => $providerParams['provider']));
27 $provider = current($providers);
96c45636 28 $providerID = $provider['id'] ?? NULL;
1a7f0799
MW
29 }
30 else {
849ac823 31 $providerID = $providerParams['provider_id'] ?? NULL;
1a7f0799
MW
32 }
33 $skipAuth = $providerID ? FALSE : TRUE;
34 $cacheKey = (int) $providerID;
35
36 if (!isset(self::$_singleton[$cacheKey]) || $force) {
affcc9d2 37 $provider = [];
1a7f0799
MW
38 if ($providerID) {
39 $provider = CRM_SMS_BAO_Provider::getProviderInfo($providerID);
40 }
41 self::$_singleton[$cacheKey] = new CiviTestSMSProvider($provider, $skipAuth);
42 }
43 return self::$_singleton[$cacheKey];
44 }
45
46 public function send($recipients, $header, $message, $dncID = NULL) {
47 }
48
49}