Skip to content

Commit

Permalink
Add tests for ClassesIn & MethodsIn delegates
Browse files Browse the repository at this point in the history
  • Loading branch information
thekid committed Apr 29, 2018
1 parent 3b8ea08 commit af6e5d1
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 0 deletions.
34 changes: 34 additions & 0 deletions src/test/php/web/frontend/unittest/ClassesInTest.class.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php namespace web\frontend\unittest;

use unittest\TestCase;
use web\frontend\ClassesIn;
use lang\reflect\Package;

class ClassesInTest extends TestCase {

#[@test]
public function can_create_with_string() {
new ClassesIn('web.frontend.unittest.actions');
}

#[@test]
public function can_create_with_package() {
new ClassesIn(Package::forName('web.frontend.unittest.actions'));
}

#[@test]
public function patterns_sorted_by_length() {
$delegates= new ClassesIn('web.frontend.unittest.actions');
$this->assertEquals(
[
'#get/blogs/(?<category>[^/]+)/(?<id>[0-9]+)$#',
'#get/users/(?<id>[^/]+)/avatar$#',
'#get/users/(?<id>[^/]+)$#',
'#post/users$#',
'#get/users$#',
'#get.+$#'
],
array_keys($delegates->patterns)
);
}
}
27 changes: 27 additions & 0 deletions src/test/php/web/frontend/unittest/MethodsInTest.class.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php namespace web\frontend\unittest;

use unittest\TestCase;
use web\frontend\MethodsIn;
use web\frontend\unittest\actions\Users;

class MethodsInTest extends TestCase {

#[@test]
public function can_create() {
new MethodsIn(new Users());
}

#[@test]
public function patterns_sorted_by_length() {
$delegates= new MethodsIn(new Users());
$this->assertEquals(
[
'#get/users/(?<id>[^/]+)/avatar$#',
'#get/users/(?<id>[^/]+)$#',
'#post/users$#',
'#get/users$#',
],
array_keys($delegates->patterns)
);
}
}
9 changes: 9 additions & 0 deletions src/test/php/web/frontend/unittest/actions/Home.class.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php namespace web\frontend\unittest\actions;

class Home {

#[@get]
public function get() {
return ['home' => true];
}
}

0 comments on commit af6e5d1

Please sign in to comment.