diff --git a/tests/ApproveActiveTest.php b/tests/ApproveActiveTest.php new file mode 100644 index 0000000..8158688 --- /dev/null +++ b/tests/ApproveActiveTest.php @@ -0,0 +1,70 @@ +create(); + $approve_active->setApproved(); + $this->assertFalse($approve_active->approved_at == null); + $this->assertTrue($approve_active->rejected_at == null); + } + + public function test_active_count() + { + ApproveActive::factory(10)->create(['rejected_at' => now()]); + $this->assertEquals(0, ApproveActive::count()); + } + + public function test_active_and_approved_count() + { + ApproveActive::factory(10)->create(['approved_at' => now()]); + $this->assertEquals(10, ApproveActive::count()); + } + + public function test_active_and_pending_count() + { + ApproveActive::factory(10)->create(); + $this->assertEquals(0, ApproveActive::count()); + } + + public function test_active_and_rejected_count() + { + ApproveActive::factory(10)->create(['rejected_at' => now()]); + $this->assertEquals(0, ApproveActive::count()); + } + + public function test_inactive_and_approved_count() + { + ApproveActive::factory(10)->create(['approved_at' => now(), 'inactive_at' => now()]); + $this->assertEquals(0, ApproveActive::count()); + } + + public function test_active_and_change_to_approved() + { + $approve_active = ApproveActive::factory()->create(); + $approve_active->setApproved(); + $this->assertEquals(1, ApproveActive::count()); + } + + public function test_inactive_and_change_to_approved() + { + $approve_active = ApproveActive::factory()->create(['inactive_at'=>now()]); + $approve_active->setApproved(); + $this->assertEquals(0, ApproveActive::count()); + } + + public function test_approved_and_change_to_active() + { + $approve_active = ApproveActive::factory()->create(['approved_at'=>now(),'inactive_at'=>now()]); + $approve_active->setActive(); + $this->assertEquals(1, ApproveActive::count()); + } + +} diff --git a/tests/Factories/ApproveActiveFactory.php b/tests/Factories/ApproveActiveFactory.php new file mode 100644 index 0000000..1dd3d9f --- /dev/null +++ b/tests/Factories/ApproveActiveFactory.php @@ -0,0 +1,28 @@ + + */ + protected $model = ApproveActive::class; + + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + 'title' => $this->faker->sentence, + ]; + } +} diff --git a/tests/Models/ApproveActive.php b/tests/Models/ApproveActive.php new file mode 100644 index 0000000..386ef73 --- /dev/null +++ b/tests/Models/ApproveActive.php @@ -0,0 +1,27 @@ + 1) { + return ApproveActiveFactory::times($count); + } else { + return ApproveActiveFactory::new(); + } + } +} diff --git a/tests/migrations/approve_active_table.php b/tests/migrations/approve_active_table.php new file mode 100644 index 0000000..de8357c --- /dev/null +++ b/tests/migrations/approve_active_table.php @@ -0,0 +1,35 @@ +id(); + $table->text('title'); + $table->dateTime('inactive_at')->nullable(); + $table->dateTime('approved_at')->nullable(); + $table->dateTime('rejected_at')->nullable(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::dropIfExists("approve_active"); + } +};