Skip to content

Commit dfdcf9e

Browse files
committed
Test if custom namespace and models are handled
1 parent bf1cc0f commit dfdcf9e

File tree

4 files changed

+110
-0
lines changed

4 files changed

+110
-0
lines changed

src/Facades/Identity.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,4 +190,14 @@ public static function useNamespace(string $namespace)
190190

191191
return new static;
192192
}
193+
194+
/**
195+
* Get the configured namespace
196+
*
197+
* @return string
198+
*/
199+
public static function namespace()
200+
{
201+
return static::$appNamespace;
202+
}
193203
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace Tests\Unit;
4+
5+
use Tests\TestCase;
6+
use Oneofftech\Identities\Facades\Identity as IdentityFacade;
7+
use Illuminate\Foundation\Testing\DatabaseMigrations;
8+
use Tests\Fixtures\Identity;
9+
use Tests\Fixtures\User;
10+
11+
class IdentityModelsConfigurationTest extends TestCase
12+
{
13+
use DatabaseMigrations;
14+
15+
public function test_default_models_uses_app_namespace()
16+
{
17+
$this->assertEquals('App\\User', IdentityFacade::userModel());
18+
$this->assertEquals('App\\Identity', IdentityFacade::identityModel());
19+
}
20+
21+
public function test_user_model_can_be_customized()
22+
{
23+
IdentityFacade::useUserModel(User::class);
24+
25+
$this->assertEquals(User::class, IdentityFacade::userModel());
26+
27+
$this->assertInstanceOf(User::class, IdentityFacade::newUserModel());
28+
}
29+
30+
public function test_identity_model_can_be_customized()
31+
{
32+
IdentityFacade::useIdentityModel(Identity::class);
33+
34+
$this->assertEquals(Identity::class, IdentityFacade::identityModel());
35+
36+
$this->assertInstanceOf(Identity::class, IdentityFacade::newIdentityModel());
37+
}
38+
}

tests/Unit/IdentityServiceProviderTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,15 @@ public function test_routes_are_registered()
3939
$this->assertTrue($router->has('oneofftech::login.callback'));
4040
$this->assertTrue($router->has('oneofftech::register.provider'));
4141
$this->assertTrue($router->has('oneofftech::register.callback'));
42+
43+
$routes = collect($router->getRoutes()->getRoutes())->map(function ($r) {
44+
return $r->getActionName();
45+
});
46+
47+
$this->assertContains('\App\Http\Controllers\Identities\Auth\LoginController@redirect', $routes);
48+
$this->assertContains('\App\Http\Controllers\Identities\Auth\LoginController@login', $routes);
49+
$this->assertContains('\App\Http\Controllers\Identities\Auth\RegisterController@redirect', $routes);
50+
$this->assertContains('\App\Http\Controllers\Identities\Auth\RegisterController@register', $routes);
4251
}
4352

4453
public function test_events_are_registered()
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Tests\Unit;
4+
5+
use Tests\TestCase;
6+
use Oneofftech\Identities\Facades\Identity as IdentityFacade;
7+
use Illuminate\Foundation\Testing\DatabaseMigrations;
8+
9+
class NamespaceConfigurationTest extends TestCase
10+
{
11+
use DatabaseMigrations;
12+
13+
public function test_default_app_namespace()
14+
{
15+
$this->assertEquals('App', IdentityFacade::namespace());
16+
}
17+
18+
public function test_namespace_can_be_customized()
19+
{
20+
IdentityFacade::useNamespace('Test\\Fixtures');
21+
22+
$this->assertEquals('Test\\Fixtures', IdentityFacade::namespace());
23+
}
24+
25+
public function test_routes_registered_when_using_custom_namespace()
26+
{
27+
IdentityFacade::useNamespace('Test\\Fixtures');
28+
29+
IdentityFacade::routes();
30+
31+
/**
32+
* @var \Illuminate\Routing\Router
33+
*/
34+
$router = tap($this->app->make('router'), function ($r) {
35+
// refresh the route name cache
36+
$r->getRoutes()->refreshNameLookups();
37+
});
38+
39+
$routes = collect($router->getRoutes()->getRoutes())->map(function ($r) {
40+
return $r->getActionName();
41+
});
42+
43+
$this->assertTrue($router->has('oneofftech::login.provider'));
44+
$this->assertTrue($router->has('oneofftech::login.callback'));
45+
$this->assertTrue($router->has('oneofftech::register.provider'));
46+
$this->assertTrue($router->has('oneofftech::register.callback'));
47+
48+
$this->assertContains('\Test\Fixtures\Http\Controllers\Identities\Auth\LoginController@redirect', $routes);
49+
$this->assertContains('\Test\Fixtures\Http\Controllers\Identities\Auth\LoginController@login', $routes);
50+
$this->assertContains('\Test\Fixtures\Http\Controllers\Identities\Auth\RegisterController@redirect', $routes);
51+
$this->assertContains('\Test\Fixtures\Http\Controllers\Identities\Auth\RegisterController@register', $routes);
52+
}
53+
}

0 commit comments

Comments
 (0)