dwoodauto-ding-notice/tests/TestCase.php

66 lines
1.7 KiB
PHP

<?php
namespace DingNotice\Tests;
use DingNotice\DingTalk;
use DingNotice\SendClient;
use PHPUnit\Framework\TestCase as BaseTestCase;
abstract class TestCase extends BaseTestCase
{
/**
* @var DingTalk
*/
protected $ding;
protected $testUser;
protected $config;
public function setUp(){
$token = 'f80be582aafed07cfced271c333c7ba7f46b873ebf7168e570919296b8062bad';
$this->testUser = '18888888888';
$robot1['timeout'] = 30.0;
$robot1['enabled'] = true;
$robot1['token'] = $token;
$robot1['secret'] = 'SECcfc6343d91e588d1f83dcf6d725a0208f79607726560ca2be135b437c62523b5';
$config['default'] = $robot1;
$this->config = $config;
$this->ding = $this->mockDingClient();
}
/**
* mock ding client
* @param null $client
* @return DingTalk
* @author wangju 2019-05-17 20:53
*/
protected function mockDingClient($client = null)
{
$client = \Mockery::mock(SendClient::class);
$client->shouldReceive('send')->withArgs(function ($arg) {
$messageType = $arg['msgtype'];
if (!in_array($messageType, ['text', 'actionCard', 'feedCard', 'link', 'markdown'])) {
return false;
}
if (!array_key_exists($messageType, $arg)) {
return false;
}
return $this->matchContent($arg[$messageType]);
})->andReturn([
'errmsg' => 'ok',
'errcode' => 0
]);
$ding = new DingTalk($this->config, $client);
return $ding;
}
protected function matchContent($content)
{
return true;
}
}