aboutsummaryrefslogtreecommitdiffstats
path: root/apps/workflowengine/tests
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2016-07-28 11:44:22 +0200
committerJoas Schilling <coding@schilljs.com>2016-08-01 17:19:04 +0200
commit8a753342eed0ba1f47c0f6c6ead1d374489fbeef (patch)
tree726ed251a7493b28169e6d22e810f17353263cf2 /apps/workflowengine/tests
parent136a1a42236f60276572a080e5510ec40c8e683f (diff)
downloadnextcloud-server-8a753342eed0ba1f47c0f6c6ead1d374489fbeef.tar.gz
nextcloud-server-8a753342eed0ba1f47c0f6c6ead1d374489fbeef.zip
Add file mime type
Diffstat (limited to 'apps/workflowengine/tests')
-rw-r--r--apps/workflowengine/tests/Check/AbstractStringCheckTest.php149
1 files changed, 149 insertions, 0 deletions
diff --git a/apps/workflowengine/tests/Check/AbstractStringCheckTest.php b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
new file mode 100644
index 00000000000..43818ab8e26
--- /dev/null
+++ b/apps/workflowengine/tests/Check/AbstractStringCheckTest.php
@@ -0,0 +1,149 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\WorkflowEngine\Tests\Check;
+
+
+class AbstractStringCheckTest extends \Test\TestCase {
+
+ public function dataExecuteStringCheck() {
+ return [
+ ['is', 'same', 'same', true],
+ ['is', 'different', 'not the same', false],
+ ['!is', 'same', 'same', false],
+ ['!is', 'different', 'not the same', true],
+
+ ['matches', '/match/', 'match', true],
+ ['matches', '/different/', 'not the same', false],
+ ['!matches', '/match/', 'match', false],
+ ['!matches', '/different/', 'not the same', true],
+ ];
+ }
+
+ /**
+ * @dataProvider dataExecuteStringCheck
+ * @param string $operation
+ * @param string $checkValue
+ * @param string $actualValue
+ * @param bool $expected
+ */
+ public function testExecuteStringCheck($operation, $checkValue, $actualValue, $expected) {
+ $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck')
+ ->setMethods([
+ 'setPath',
+ 'executeCheck',
+ 'getActualValue',
+ ])
+ ->getMock();
+
+ /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */
+ $this->assertEquals($expected, $this->invokePrivate($check, 'executeStringCheck', [$operation, $checkValue, $actualValue]));
+ }
+
+ public function dataValidateCheck() {
+ return [
+ ['is', '/Invalid(Regex/'],
+ ['!is', '/Invalid(Regex/'],
+ ['matches', '/Valid(Regex)/'],
+ ['!matches', '/Valid(Regex)/'],
+ ];
+ }
+
+ /**
+ * @dataProvider dataValidateCheck
+ * @param string $operator
+ * @param string $value
+ */
+ public function testValidateCheck($operator, $value) {
+ $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck')
+ ->setMethods([
+ 'setPath',
+ 'executeCheck',
+ 'getActualValue',
+ ])
+ ->getMock();
+
+ /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */
+ $check->validateCheck($operator, $value);
+ }
+
+ public function dataValidateCheckInvalid() {
+ return [
+ ['!!is', '', 1, 'Invalid operator'],
+ ['less', '', 1, 'Invalid operator'],
+ ['matches', '/Invalid(Regex/', 2, 'Invalid regex'],
+ ['!matches', '/Invalid(Regex/', 2, 'Invalid regex'],
+ ];
+ }
+
+ /**
+ * @dataProvider dataValidateCheckInvalid
+ * @param $operator
+ * @param $value
+ * @param $exceptionCode
+ * @param $exceptionMessage
+ */
+ public function testValidateCheckInvalid($operator, $value, $exceptionCode, $exceptionMessage) {
+ $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck')
+ ->setMethods([
+ 'setPath',
+ 'executeCheck',
+ 'getActualValue',
+ ])
+ ->getMock();
+
+ try {
+ /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */
+ $check->validateCheck($operator, $value);
+ } catch (\UnexpectedValueException $e) {
+ $this->assertEquals($exceptionCode, $e->getCode());
+ $this->assertEquals($exceptionMessage, $e->getMessage());
+ }
+ }
+
+ public function dataMatch() {
+ return [
+ ['/valid/', 'valid', [], true],
+ ['/valid/', 'valid', [md5('/valid/') => [md5('valid') => false]], false], // Cache hit
+ ];
+ }
+
+ /**
+ * @dataProvider dataMatch
+ * @param string $pattern
+ * @param string $subject
+ * @param array[] $matches
+ * @param bool $expected
+ */
+ public function testMatch($pattern, $subject, $matches, $expected) {
+ $check = $this->getMockBuilder('OCA\WorkflowEngine\Check\AbstractStringCheck')
+ ->setMethods([
+ 'setPath',
+ 'executeCheck',
+ 'getActualValue',
+ ])
+ ->getMock();
+
+ $this->invokePrivate($check, 'matches', [$matches]);
+
+ $this->assertEquals($expected, $this->invokePrivate($check, 'match', [$pattern, $subject]));
+ }
+}