1+ <?php
2+
3+ use Illuminate \Database \Eloquent \Model as Eloquent ;
4+ use Illuminate \Database \Capsule \Manager as DB ;
5+ use Conner \Likeable \LikeableTrait ;
6+
7+ class CommonUseTest extends TestCase
8+ {
9+ public function setUp ()
10+ {
11+ parent ::setUp ();
12+
13+ Eloquent::unguard ();
14+
15+ $ this ->artisan ('migrate ' , [
16+ '--database ' => 'testbench ' ,
17+ '--realpath ' => realpath (__DIR__ .'/../migrations ' ),
18+ ]);
19+ }
20+
21+ protected function getEnvironmentSetUp ($ app )
22+ {
23+ $ app ['config ' ]->set ('database.default ' , 'testbench ' );
24+ $ app ['config ' ]->set ('database.connections.testbench ' , [
25+ 'driver ' => 'sqlite ' ,
26+ 'database ' => ':memory: ' ,
27+ 'prefix ' => '' ,
28+ ]);
29+
30+ \Schema::create ('books ' , function ($ table ) {
31+ $ table ->increments ('id ' );
32+ $ table ->string ('name ' );
33+ $ table ->timestamps ();
34+ });
35+ }
36+
37+ public function tearDown ()
38+ {
39+ \Schema::drop ('books ' );
40+ }
41+
42+ public function test_basic_like ()
43+ {
44+ $ stub = Stub::create (['name ' =>123 ]);
45+
46+ $ stub ->like ();
47+
48+ $ this ->assertEquals (1 , $ stub ->likeCount );
49+ }
50+
51+ public function test_multiple_likes ()
52+ {
53+ $ stub = Stub::create (['name ' =>123 ]);
54+
55+ $ stub ->like (1 );
56+ $ stub ->like (2 );
57+ $ stub ->like (3 );
58+ $ stub ->like (4 );
59+
60+ $ this ->assertEquals (4 , $ stub ->likeCount );
61+ }
62+
63+ public function test_unike ()
64+ {
65+ $ stub = Stub::create (['name ' =>123 ]);
66+
67+ $ stub ->unlike (1 );
68+
69+ $ this ->assertEquals (0 , $ stub ->likeCount );
70+ }
71+
72+ public function test_where_liked_by ()
73+ {
74+ Stub::create (['name ' =>'A ' ])->like (1 );
75+ Stub::create (['name ' =>'B ' ])->like (1 );
76+ Stub::create (['name ' =>'C ' ])->like (1 );
77+
78+ $ stubs = Stub::whereLikedBy (1 )->get ();
79+ $ shouldBeEmpty = Stub::whereLikedBy (2 )->get ();
80+
81+ $ this ->assertEquals (3 , $ stubs ->count ());
82+ $ this ->assertEmpty ($ shouldBeEmpty );
83+ }
84+ }
85+
86+ class Stub extends Eloquent
87+ {
88+ use LikeableTrait;
89+
90+ protected $ connection = 'testbench ' ;
91+
92+ public $ table = 'books ' ;
93+ }
0 commit comments