create(); $project = factory(Project::class)->create(['customer_id' => $customer->id]); $this->assertInstanceOf(Collection::class, $customer->projects); $this->assertInstanceOf(Project::class, $customer->projects->first()); } /** @test */ public function a_customer_has_many_payments_relation() { $customer = factory(Customer::class)->create(); $payment = factory(Payment::class)->create([ 'partner_id' => $customer->id, 'partner_type' => 'App\Entities\Partners\Customer', ]); $this->assertInstanceOf(Collection::class, $customer->payments); $this->assertInstanceOf(Payment::class, $customer->payments->first()); } /** @test */ public function a_customer_has_many_subscriptions_relation() { $customer = factory(Customer::class)->create(); $subscription = factory(Subscription::class)->create(['customer_id' => $customer->id]); $this->assertInstanceOf(Collection::class, $customer->subscriptions); $this->assertInstanceOf(Subscription::class, $customer->subscriptions->first()); } /** @test */ public function a_customer_has_many_invoices_through_projects_relation() { $customer = factory(Customer::class)->create(); $project = factory(Project::class)->create(['customer_id' => $customer->id]); $invoice = factory(Invoice::class)->create(['project_id' => $project->id]); $this->assertInstanceOf(Collection::class, $customer->invoices); $this->assertInstanceOf(Invoice::class, $customer->invoices->first()); } /** @test */ public function a_customer_has_name_link_method() { $customer = factory(Customer::class)->make(); $this->assertEquals( link_to_route('customers.show', $customer->name, [$customer->id], [ 'title' => trans( 'app.show_detail_title', ['name' => $customer->name, 'type' => trans('customer.customer')] ), ]), $customer->nameLink() ); } /** @test */ public function a_customer_has_status_attribute() { $customer = factory(Customer::class)->make(['is_active' => 1]); $this->assertEquals(1, $customer->is_active); $this->assertEquals(trans('app.active'), $customer->status); $customer = factory(Customer::class)->make(['is_active' => 0]); $this->assertEquals(0, $customer->is_active); $this->assertEquals(trans('app.in_active'), $customer->status); } /** @test */ public function a_customer_has_status_label_attribute() { $customer = factory(Customer::class)->make(['is_active' => 1]); $this->assertEquals(1, $customer->is_active); $activeLabel = ''.trans('app.active').''; $this->assertEquals($activeLabel, $customer->status_label); $customer = factory(Customer::class)->make(['is_active' => 0]); $this->assertEquals(0, $customer->is_active); $inActiveLabel = ''.trans('app.in_active').''; $this->assertEquals($inActiveLabel, $customer->status_label); } }