1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\CoreHome\tests\Unit\EntityDuplicator;
use PHPUnit\Framework\TestCase;
use Piwik\Plugins\CoreHome\EntityDuplicator\DuplicateRequestResponse;
/**
* @group CoreHome
* @group CoreHomeTest
* @group EntityDuplicator
*/
class DuplicateRequestResponseTest extends TestCase
{
/**
* @var DuplicateRequestResponse
*/
private $duplicateRequestResponse;
protected function setUp(): void
{
$this->duplicateRequestResponse = new DuplicateRequestResponse();
}
public function testHasResponseBeenModified()
{
$this->assertFalse($this->duplicateRequestResponse->hasResponseBeenModified());
}
/**
* @dataProvider getPropertyNames
*/
public function testHasResponseBeenModifiedSetValue($methodName, $value)
{
$this->assertTrue(method_exists($this->duplicateRequestResponse, $methodName));
$this->duplicateRequestResponse->$methodName($value);
$this->assertTrue($this->duplicateRequestResponse->hasResponseBeenModified());
}
public function testGetJsonResponseNoChanges()
{
$this->expectException(\Exception::class);
$this->expectExceptionMessage('No duplicate request response properties were set.');
$this->duplicateRequestResponse->getJsonResponse();
}
public function testGetResponseArraySuccess()
{
$this->duplicateRequestResponse->setSuccess(true);
$this->duplicateRequestResponse->setMessage('Item copied!');
$this->assertSame(['success' => true, 'message' => 'Item copied!'], $this->duplicateRequestResponse->getResponseArray());
}
public function testGetResponseArraySuccessFail()
{
$this->duplicateRequestResponse->setSuccess(false);
$this->duplicateRequestResponse->setMessage('Item duplication failed!');
$this->assertSame(['success' => false, 'message' => 'Item duplication failed!'], $this->duplicateRequestResponse->getResponseArray());
}
public function testGetJsonResponseSuccess()
{
$this->duplicateRequestResponse->setSuccess(true);
$this->duplicateRequestResponse->setMessage('Item copied!');
$this->assertSame('{"success":true,"message":"Item copied!"}', $this->duplicateRequestResponse->getJsonResponse());
}
public function testGetJsonResponseSuccessWithData()
{
$this->duplicateRequestResponse->setSuccess(true);
$this->duplicateRequestResponse->setMessage('Item copied!');
$this->duplicateRequestResponse->setAdditionalData(['foo' => 'bar']);
$this->assertSame('{"success":true,"message":"Item copied!","additionalData":{"foo":"bar"}}', $this->duplicateRequestResponse->getJsonResponse());
}
public function testGetJsonResponseSuccessFail()
{
$this->duplicateRequestResponse->setSuccess(false);
$this->duplicateRequestResponse->setMessage('Item duplication failed!');
$this->assertSame('{"success":false,"message":"Item duplication failed!"}', $this->duplicateRequestResponse->getJsonResponse());
}
public function getPropertyNames(): array
{
return [
['setSuccess', false],
['setSuccess', true],
['setMessage', ''],
['setMessage', 'Some message'],
['setMessage', 'Another message'],
['setAdditionalData', []],
['setAdditionalData', ['key' => 'value']],
];
}
}
|