PaperBoxTest.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <?php
  2. namespace Tests\Unit;
  3. use App\Authority;
  4. use App\PaperBox;
  5. use App\Role;
  6. use App\User;
  7. use Illuminate\Support\Facades\DB;
  8. use Tests\TestCase;
  9. use Illuminate\Foundation\Testing\WithFaker;
  10. use Illuminate\Foundation\Testing\RefreshDatabase;
  11. class PaperBoxTest extends TestCase
  12. {
  13. public function testUserMark(){
  14. $userMark=factory(User::class)->create();
  15. $this->assertNotEmpty($userMark->id);
  16. return $userMark;
  17. }
  18. public function testRole(){
  19. $role=Role::create([
  20. 'name'=>'测试admin'
  21. ]);
  22. $this->assertNotEmpty($role->id);
  23. $authorities= Authority::get();
  24. foreach ($authorities as $authority){
  25. DB::table('authority_role')->insert(['id_authority'=>$authority->id,'id_role'=>$role->id]);
  26. }
  27. return $role;
  28. }
  29. /**
  30. * @depends testRole
  31. */
  32. public function testUser(Role $role){
  33. $user=factory(User::class)->create();
  34. DB::table('user_role')->insert(['id_user'=>$user->id,'id_role'=>$role->id]);
  35. $this->assertNotEmpty($user->id);
  36. return $user;
  37. }
  38. public function testAddPaperBox(){
  39. $paperBox=PaperBox::create([
  40. 'model'=>'test',
  41. 'length'=>50,
  42. 'height'=>40,
  43. 'width'=>30,
  44. ]);
  45. $this->assertNotEmpty($paperBox);
  46. return $paperBox;
  47. }
  48. /**
  49. * @depends testUser
  50. * @depends testAddPaperBox
  51. * @depends testUserMark
  52. */
  53. public function testIndex(User $user,PaperBox $paperBox,User $userMark){
  54. $model=$this->actingAs($user)->get('maintenance/paperBox/index/model');
  55. $owner=$this->actingAs($user)->get('maintenance/paperBox/index/owner');
  56. $model->assertOk()->assertSee('test');
  57. $owner->assertOk();
  58. $modelFalse=$this->actingAs($userMark)->get('maintenance/paperBox/index/model');
  59. $ownerFalse=$this->actingAs($userMark)->get('maintenance/paperBox/index/owner');
  60. $modelFalse->assertStatus(302)->assertRedirect('/');
  61. $ownerFalse->assertStatus(302)->assertRedirect('/');
  62. }
  63. /**
  64. * @depends testUser
  65. * @depends testUserMark
  66. */
  67. public function testCreate(User $user,User $userMark){
  68. $paperBox=$this->actingAs($user)->get('maintenance/paperBox/create');
  69. $paperBox->assertOk()->assertSee('选择货主');
  70. $paperBox=$this->actingAs($userMark)->get('maintenance/paperBox/create');
  71. $paperBox->assertStatus(302)->assertRedirect('/');
  72. }
  73. /**
  74. * @depends testUser
  75. * @depends testUserMark
  76. */
  77. public function testStore(User $user,User $userMark){
  78. $response=$this->actingAs($user)->post('maintenance/paperBox',[
  79. 'model'=>'测试纸箱',
  80. 'length'=>2,
  81. 'width'=>10,
  82. 'height'=>80,
  83. ]);
  84. $response->assertStatus(302)->assertRedirect('maintenance/paperBox/index/model')->assertSessionHas('successTip');
  85. $paperBox=PaperBox::where('model','测试纸箱')->first();
  86. $this->assertEquals(80,$paperBox->length);
  87. $this->assertEquals(10,$paperBox->width);
  88. $this->assertEquals(2,$paperBox->height);
  89. $result=$paperBox->delete();
  90. $this->assertTrue($result);
  91. $responseFalse=$this->actingAs($userMark)->post('maintenance/paperBox',[
  92. 'model'=>'测试纸箱',
  93. 'length'=>2,
  94. 'width'=>10,
  95. 'height'=>80,
  96. ]);
  97. $responseFalse->assertStatus(302)->assertRedirect('/');
  98. }
  99. /**
  100. * @depends testUser
  101. * @depends testAddPaperBox
  102. * @depends testUserMark
  103. */
  104. public function testEdit(User $user,PaperBox $paperBox,User $userMark){
  105. $response=$this->actingAs($user)->get("maintenance/paperBox/$paperBox->id/edit");
  106. $response->assertOk()->assertSee('test');
  107. $responseMark=$this->actingAs($userMark)->get("maintenance/paperBox/$paperBox->id/edit");
  108. $responseMark->assertStatus(302)->assertRedirect('/');
  109. }
  110. /**
  111. * @depends testUser
  112. * @depends testAddPaperBox
  113. * @depends testUserMark
  114. */
  115. public function testUpdate(User $user,PaperBox $paperBox,User $userMark){
  116. $response=$this->actingAs($user)->put("maintenance/paperBox/$paperBox->id",[
  117. 'model'=>'test','length'=>'50','width'=>'20','height'=>'40'
  118. ]);
  119. $response->assertStatus(302)->assertRedirect('maintenance/paperBox/index/model')->assertSessionHas('successTip');
  120. $paperSelect=PaperBox::find($paperBox->id);
  121. $this->assertEquals(50,$paperSelect->length);
  122. $this->assertEquals(40,$paperSelect->width);
  123. $this->assertEquals(20,$paperSelect->height);
  124. $responseMark=$this->actingAs($userMark)->put("maintenance/paperBox/$paperBox->id",[
  125. 'model'=>'test','length'=>'50','width'=>'20','height'=>'40'
  126. ]);
  127. $responseMark->assertStatus(302)->assertRedirect('/');
  128. }
  129. /**
  130. * @depends testUser
  131. * @depends testAddPaperBox
  132. * @depends testUserMark
  133. */
  134. public function testDestroy(User $user,PaperBox $paperBox,User $userMark){
  135. $response=$this->actingAs($user)->delete("maintenance/paperBox/$paperBox->id");
  136. $response->assertOk()->assertJson(['success'=>true]);
  137. $response=$this->actingAs($userMark)->delete("maintenance/paperBox/$paperBox->id");
  138. $response->assertStatus(302)->assertRedirect('/');
  139. $resultUser=$user->delete();
  140. $resultUserMark=$userMark->delete();
  141. $this->assertTrue($resultUser);
  142. $this->assertTrue($resultUserMark);
  143. }
  144. }