Skip to content

Commit dab3c1d

Browse files
committed
fix: support php7.4 in build
1 parent 02c5888 commit dab3c1d

File tree

5 files changed

+69
-44
lines changed

5 files changed

+69
-44
lines changed

.github/workflows/default.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ jobs:
2323
strategy:
2424
fail-fast: true
2525
matrix:
26-
php: [ 7.1, 7.2, 7.3 ]
27-
stability: [ prefer-lowest, prefer-stable ]
26+
php: [ 7.1, 7.2, 7.3, 7.4 ]
27+
stability: [ prefer-lowest ]
2828

2929
name: PHP ${{ matrix.php }} - ${{ matrix.stability }}
3030

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ php:
66
- 7.1
77
- 7.2
88
- 7.3
9+
- 7.4
910

1011
services:
1112
- mysql

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"casbin/psr3-bridge": "^1.1"
2727
},
2828
"require-dev": {
29-
"phpunit/phpunit": "~7.0|~8.0",
29+
"phpunit/phpunit": "~7.0|~8.0|~9.0",
3030
"php-coveralls/php-coveralls": "^2.1",
3131
"topthink/think": "^6.0.0"
3232
},

tests/DatabaseAdapterTest.php

Lines changed: 45 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,60 +8,72 @@ class DatabaseAdapterTest extends TestCase
88
{
99
public function testEnforce()
1010
{
11-
$this->assertTrue(Enforcer::enforce('alice', 'data1', 'read'));
11+
$this->testing(function () {
1212

13-
$this->assertFalse(Enforcer::enforce('bob', 'data1', 'read'));
14-
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
13+
$this->assertTrue(Enforcer::enforce('alice', 'data1', 'read'));
1514

16-
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'read'));
17-
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
15+
$this->assertFalse(Enforcer::enforce('bob', 'data1', 'read'));
16+
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
17+
18+
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'read'));
19+
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
20+
21+
});
1822
}
1923

2024
public function testAddPolicy()
2125
{
22-
$this->assertFalse(Enforcer::enforce('eve', 'data3', 'read'));
23-
Enforcer::addPermissionForUser('eve', 'data3', 'read');
24-
$this->assertTrue(Enforcer::enforce('eve', 'data3', 'read'));
26+
$this->testing(function () {
27+
$this->assertFalse(Enforcer::enforce('eve', 'data3', 'read'));
28+
Enforcer::addPermissionForUser('eve', 'data3', 'read');
29+
$this->assertTrue(Enforcer::enforce('eve', 'data3', 'read'));
30+
});
2531
}
2632

2733
public function testSavePolicy()
2834
{
29-
$this->assertFalse(Enforcer::enforce('alice', 'data4', 'read'));
35+
$this->testing(function () {
36+
$this->assertFalse(Enforcer::enforce('alice', 'data4', 'read'));
3037

31-
$model = Enforcer::getModel();
32-
$model->clearPolicy();
33-
$model->addPolicy('p', 'p', ['alice', 'data4', 'read']);
38+
$model = Enforcer::getModel();
39+
$model->clearPolicy();
40+
$model->addPolicy('p', 'p', ['alice', 'data4', 'read']);
3441

35-
$adapter = Enforcer::getAdapter();
36-
$adapter->savePolicy($model);
37-
$this->assertTrue(Enforcer::enforce('alice', 'data4', 'read'));
42+
$adapter = Enforcer::getAdapter();
43+
$adapter->savePolicy($model);
44+
$this->assertTrue(Enforcer::enforce('alice', 'data4', 'read'));
45+
});
3846
}
3947

4048
public function testRemovePolicy()
4149
{
42-
$this->assertFalse(Enforcer::enforce('alice', 'data5', 'read'));
50+
$this->testing(function () {
51+
$this->assertFalse(Enforcer::enforce('alice', 'data5', 'read'));
4352

44-
Enforcer::addPermissionForUser('alice', 'data5', 'read');
45-
$this->assertTrue(Enforcer::enforce('alice', 'data5', 'read'));
53+
Enforcer::addPermissionForUser('alice', 'data5', 'read');
54+
$this->assertTrue(Enforcer::enforce('alice', 'data5', 'read'));
4655

47-
Enforcer::deletePermissionForUser('alice', 'data5', 'read');
48-
$this->assertFalse(Enforcer::enforce('alice', 'data5', 'read'));
56+
Enforcer::deletePermissionForUser('alice', 'data5', 'read');
57+
$this->assertFalse(Enforcer::enforce('alice', 'data5', 'read'));
58+
});
4959
}
5060

5161
public function testRemoveFilteredPolicy()
5262
{
53-
$this->assertTrue(Enforcer::enforce('alice', 'data1', 'read'));
54-
Enforcer::removeFilteredPolicy(1, 'data1');
55-
$this->assertFalse(Enforcer::enforce('alice', 'data1', 'read'));
56-
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
57-
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'read'));
58-
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
59-
Enforcer::removeFilteredPolicy(1, 'data2', 'read');
60-
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
61-
$this->assertFalse(Enforcer::enforce('alice', 'data2', 'read'));
62-
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
63-
Enforcer::removeFilteredPolicy(2, 'write');
64-
$this->assertFalse(Enforcer::enforce('bob', 'data2', 'write'));
65-
$this->assertFalse(Enforcer::enforce('alice', 'data2', 'write'));
63+
$this->testing(function () {
64+
$this->assertTrue(Enforcer::enforce('alice', 'data1', 'read'));
65+
Enforcer::removeFilteredPolicy(1, 'data1');
66+
$this->assertFalse(Enforcer::enforce('alice', 'data1', 'read'));
67+
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
68+
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'read'));
69+
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
70+
Enforcer::removeFilteredPolicy(1, 'data2', 'read');
71+
$this->assertTrue(Enforcer::enforce('bob', 'data2', 'write'));
72+
$this->assertFalse(Enforcer::enforce('alice', 'data2', 'read'));
73+
$this->assertTrue(Enforcer::enforce('alice', 'data2', 'write'));
74+
Enforcer::removeFilteredPolicy(2, 'write');
75+
$this->assertFalse(Enforcer::enforce('bob', 'data2', 'write'));
76+
$this->assertFalse(Enforcer::enforce('alice', 'data2', 'write'));
77+
});
6678
}
6779
}

tests/TestCase.php

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,31 @@
22

33
namespace tauthz\tests;
44

5+
use Closure;
56
use think\App;
67
use PHPUnit\Framework\TestCase as BaseTestCase;
78
use tauthz\TauthzService;
89
use tauthz\model\Rule;
910

10-
class TestCase extends BaseTestCase{
11+
class TestCase extends BaseTestCase
12+
{
1113

1214
protected $app;
1315

1416
protected $migrate = true;
1517

16-
public function createApplication(){
18+
public function createApplication()
19+
{
1720

1821
// 应用初始化
19-
$app = new App(__DIR__.'/../vendor/topthink/think/');
22+
$app = new App(__DIR__ . '/../vendor/topthink/think/');
2023

2124
$app->register(TauthzService::class);
2225

2326
$app->initialize();
2427

2528
$app->console->call("tauthz:publish");
26-
29+
2730
return $app;
2831
}
2932

@@ -52,12 +55,21 @@ protected function refreshApplication()
5255
$this->app = $this->createApplication();
5356
}
5457

58+
protected function testing(Closure $closure)
59+
{
60+
$this->_setUp();
61+
62+
$closure();
63+
64+
$this->_tearDown();
65+
}
66+
5567
/**
5668
* This method is called before each test.
5769
*/
58-
protected function setUp()/* The :void return type declaration that should be here would cause a BC issue */
70+
protected function _setUp()
5971
{
60-
if (! $this->app) {
72+
if (!$this->app) {
6173
$this->refreshApplication();
6274
}
6375

@@ -69,9 +81,9 @@ protected function setUp()/* The :void return type declaration that should be he
6981
/**
7082
* This method is called after each test.
7183
*/
72-
protected function tearDown()/* The :void return type declaration that should be here would cause a BC issue */
84+
protected function _tearDown()
7385
{
74-
if ($this->migrate){
86+
if ($this->migrate) {
7587
$this->app->console->call("migrate:rollback");
7688
}
7789
}

0 commit comments

Comments
 (0)