Skip to content

Commit

Permalink
change some methods to getters (where it made more sense)
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Baettig committed Nov 22, 2019
1 parent dcc472f commit d732d64
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 13 deletions.
21 changes: 18 additions & 3 deletions src/Models/HasPlans.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,32 @@ public function getActiveSubscriptionAttribute()
/**
* @return Subscription | null
*/
public function upcomingSubscription(): ?Subscription
private function upcomingSubscription(): ?Subscription
{
/** @noinspection PhpUndefinedMethodInspection */
return $this->subscriptions()->upcoming()->first();
}

public function getUpcomingSubscriptionAttribute(): ?Subscription
{
return $this->upcomingSubscription();
}

/**
* @return Subscription | null
*/
public function latestSubscription(): ?Subscription
private function latestSubscription(): ?Subscription
{
/** @noinspection PhpIncompatibleReturnTypeInspection */
return $this->subscriptions()->latest('created_at')->first();
}

public function activeOrLastSubscription()
public function getLatestSubscriptionAttribute(): ?Subscription
{
return $this->latestSubscription();
}

private function activeOrLastSubscription()
{
if ($this->hasActiveSubscription()) {
return $this->activeSubscription();
Expand All @@ -62,6 +72,11 @@ public function activeOrLastSubscription()
return $this->subscriptions()->latest('starts_at')->first();
}

public function getActiveOrLastSubscriptionAttribute(): ?Subscription
{
return $this->activeOrLastSubscription();
}

/**
* Check if the model has an active subscription right now.
*
Expand Down
6 changes: 3 additions & 3 deletions tests/feature/ExtendSubscriptionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public function can_only_extend_active_subscriptions(): void
try {
$this->user->extendSubscription(10);
} catch (SubscriptionException $e) {
$this->assertEqualsWithDelta(Carbon::yesterday(), $this->user->activeOrLastSubscription()->expires_at, 1);
$this->assertEqualsWithDelta(Carbon::yesterday(), $this->user->active_or_last_subscription->expires_at, 1);
/** @noinspection PhpUndefinedMethodInspection */
Event::assertNotDispatched(SubscriptionExtended::class);
return;
Expand Down Expand Up @@ -115,7 +115,7 @@ public function can_only_extend_active_subscriptions_to_a_certain_date(): void
try {
$this->user->extendSubscriptionTo(Carbon::parse('+ 2 weeks'));
} catch (SubscriptionException $e) {
$this->assertEqualsWithDelta(Carbon::yesterday(), $this->user->activeOrLastSubscription()->expires_at, 1);
$this->assertEqualsWithDelta(Carbon::yesterday(), $this->user->active_or_last_subscription->expires_at, 1);
/** @noinspection PhpUndefinedMethodInspection */
Event::assertNotDispatched(SubscriptionExtended::class);
return;
Expand Down Expand Up @@ -143,7 +143,7 @@ public function can_migrate_a_yearly_plan_to_a_monthly_plan_on_the_expiry_date()

$activeSubscription = $this->user->active_subscription;
$this->assertTrue($activeSubscription->is($oldSubscription));
$latestSubscription = $this->user->latestSubscription();
$latestSubscription = $this->user->latest_subscription;
$this->assertEquals('monthly', $latestSubscription->plan->type);
$this->assertEqualsWithDelta($activeSubscription->expires_at, $latestSubscription->starts_at, 1);
}
Expand Down
2 changes: 1 addition & 1 deletion tests/feature/MigrateSubscriptionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public function can_migrate_a_yearly_plan_to_a_monthly_plan_on_the_expiry_date()

$activeSubscription = $this->user->active_subscription;
$this->assertTrue($activeSubscription->is($oldSubscription));
$latestSubscription = $this->user->latestSubscription();
$latestSubscription = $this->user->latest_subscription;
$this->assertEquals('monthly', $latestSubscription->plan->type);
$this->assertEqualsWithDelta($activeSubscription->expires_at, $latestSubscription->starts_at, 1);
}
Expand Down
2 changes: 1 addition & 1 deletion tests/feature/RenewExpiredSubscriptionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public function can_not_renew_active_subscriptions(): void
try {
$this->user->renewExpiredSubscription(true);
} catch (SubscriptionException $e) {
$this->assertTrue($this->user->activeOrLastSubscription()->is($expiredSubscription));
$this->assertTrue($this->user->active_or_last_subscription->is($expiredSubscription));
/** @noinspection PhpUndefinedMethodInspection */
Event::assertNotDispatched(SubscriptionRenewed::class);
return;
Expand Down
2 changes: 1 addition & 1 deletion tests/feature/RenewExpiringSubscriptionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public function can_renew_a_recurring_subscription_that_expires_tomorrow(): void

$this->assertTrue($this->user->hasUpcomingSubscription());
$this->assertTrue($this->user->active_subscription->is($activeSubscription));
$this->assertTrue($this->user->upcomingSubscription()->is($upcomingSubscription));
$this->assertTrue($this->user->upcoming_subscription->is($upcomingSubscription));
$this->assertTrue($upcomingSubscription->is_paid);
$this->assertTrue($upcomingSubscription->is_renewed);
$this->assertEqualsWithDelta(Carbon::now(), $upcomingSubscription->renewed_at, 1);
Expand Down
4 changes: 2 additions & 2 deletions tests/feature/SubscribeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public function can_subscribe_to_a_recurring_yearly_plan(): void
$this->user->subscribeTo($plan);
$this->assertCount(1, $this->user->subscriptions);
/** @var Subscription $subscription */
$subscription = $this->user->activeOrLastSubscription();
$subscription = $this->user->active_or_last_subscription;
$this->assertEqualsWithDelta(Carbon::now(), $subscription->starts_at, 1);
/** @noinspection PhpUndefinedMethodInspection */
$this->assertEqualsWithDelta(Carbon::now()->addYear()->endOfDay(), $subscription->expires_at, 1);
Expand Down Expand Up @@ -176,7 +176,7 @@ public function can_not_subscribe_overlapping_other_future_subscription(): void
} catch (SubscriptionException $e) {
$this->assertCount(1, $this->user->subscriptions);
/** @noinspection PhpUndefinedVariableInspection */
$this->assertTrue($this->user->upcomingSubscription()->is($subscription));
$this->assertTrue($this->user->upcoming_subscription->is($subscription));
/** @noinspection PhpUndefinedMethodInspection */
Event::assertNotDispatched(NewSubscription::class);
return;
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/HasPlansTraitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public function active_or_last_subscription_returns_active_subscription_if_exist
$subscription = factory(Subscription::class)->states('active')->create();
/** @var User $user */
$user = $subscription->model;
$this->assertTrue($user->activeOrLastSubscription()->is($subscription));
$this->assertTrue($user->active_or_last_subscription->is($subscription));
}

/** @test */
Expand All @@ -29,7 +29,7 @@ public function active_or_last_subscription_returns_last_past_subscription_if_no
factory(Subscription::class)->states('expired')->create(['expires_at' => Carbon::parse('-2 weeks')]);
/** @var User $user */
$user = $latestExpiredSubscription->model;
$this->assertTrue($user->activeOrLastSubscription()->is($latestExpiredSubscription));
$this->assertTrue($user->active_or_last_subscription->is($latestExpiredSubscription));
}

/** @test */
Expand Down

0 comments on commit d732d64

Please sign in to comment.