Page MenuHomePhorge

D964.1775242440.diff
No OneTemporary

Authored By
Unknown
Size
25 KB
Referenced Files
None
Subscribers
None

D964.1775242440.diff

diff --git a/src/app/Changelog.php b/src/app/Changelog.php
new file mode 100644
--- /dev/null
+++ b/src/app/Changelog.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+//use Illuminate\Database\Eloquent\SoftDeletes;
+
+class Changelog extends Model
+{
+ //use SoftDeletes;
+
+ protected $fillable = [
+ 'wallet_id',
+ 'sku_id',
+ 'action',
+ 'cost'
+ ];
+}
diff --git a/src/app/Domain.php b/src/app/Domain.php
--- a/src/app/Domain.php
+++ b/src/app/Domain.php
@@ -68,6 +68,7 @@
'owner_id' => $user->id,
'wallet_id' => $wallet_id,
'sku_id' => $sku->id,
+ 'cost' => $sku->pivot->cost(),
'entitleable_id' => $this->id,
'entitleable_type' => Domain::class
]
diff --git a/src/app/Entitlement.php b/src/app/Entitlement.php
--- a/src/app/Entitlement.php
+++ b/src/app/Entitlement.php
@@ -41,6 +41,7 @@
'wallet_id',
'entitleable_id',
'entitleable_type',
+ 'cost',
'description'
];
diff --git a/src/app/Observers/EntitlementObserver.php b/src/app/Observers/EntitlementObserver.php
--- a/src/app/Observers/EntitlementObserver.php
+++ b/src/app/Observers/EntitlementObserver.php
@@ -3,6 +3,7 @@
namespace App\Observers;
use App\Entitlement;
+use Carbon\Carbon;
/**
* This is an observer for the Entitlement model definition.
@@ -63,10 +64,57 @@
return false;
}
- // TODO: Handle the first free unit here?
+ // debit the wallet with the costs of the sku
+ \App\Changelog::create(
+ [
+ 'wallet_id' => $entitlement->wallet_id,
+ 'sku_id' => $entitlement->sku_id,
+ 'action' => 'creating',
+ 'cost' => $entitlement->cost
+ ]
+ );
+ }
+
+ public function deleting(Entitlement $entitlement)
+ {
+ // credit the wallet with any remainder of time available on the entitlement deleted
+ $sku = \App\Sku::find($entitlement->sku_id);
+
+ // Get the latest possible changelog entry.
+ $changelog = \App\Changelog::where(
+ [
+ 'wallet_id' => $entitlement->wallet_id,
+ 'sku_id' => $entitlement->sku_id,
+ 'cost' => $entitlement->cost
+ ]
+ )->latest()->first();
- // TODO: Execute the Sku handler class or function?
+ if (!$changelog) {
+ return true;
+ }
+
+ $dateStart = $changelog->created_at;
+
+ $dateEnd = Carbon::now();
+
+ $deltaDays = $dateStart->diffInDays($dateEnd);
+
+ if ($deltaDays <= 14) {
+ // log changelog refunding in its entirety
+ $leftover = $entitlement->cost;
+ } else {
+ // it wasn't charged, pro-rate?
+ // take cost, divide by number of days in month created, multiply by days since
+ $leftover = $entitlement->cost * 0.5;
+ }
- $wallet->debit($sku->cost);
+ \App\Changelog::create(
+ [
+ 'wallet_id' => $entitlement->wallet_id,
+ 'sku_id' => $entitlement->sku_id,
+ 'action' => 'deleting',
+ 'cost' => -1 * $leftover
+ ]
+ );
}
}
diff --git a/src/app/Observers/PackageSkuObserver.php b/src/app/Observers/PackageSkuObserver.php
new file mode 100644
--- /dev/null
+++ b/src/app/Observers/PackageSkuObserver.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Observers;
+
+class PackageSkuObserver
+{
+ public function created(\App\PackageSku $packageSku)
+ {
+ // TODO: free units...
+ $package = $packageSku->package;
+ $sku = $packageSku->sku;
+
+ $cost = ($sku->cost * (100 - $package->discount_rate)) / 100;
+
+ \Log::debug("Setting costs for {$sku->title} on package {$package->title} to {$cost}");
+
+ $package->skus()->updateExistingPivot(
+ $sku,
+ ['cost' => ($sku->cost * (100 - $package->discount_rate)) / 100],
+ false
+ );
+ }
+}
diff --git a/src/app/Package.php b/src/app/Package.php
--- a/src/app/Package.php
+++ b/src/app/Package.php
@@ -34,12 +34,26 @@
'discount_rate'
];
+ /**
+ * The costs of this package at its pre-defined, existing configuration.
+ *
+ * @return int The costs in cents.
+ */
public function cost()
{
$costs = 0;
foreach ($this->skus as $sku) {
- $costs += ($sku->pivot->qty - $sku->units_free) * $sku->cost;
+ $units = $sku->pivot->qty - $sku->units_free;
+
+ if ($units < 0) {
+ \Log::debug("Package {$this->id} is misconfigured for more free units than qty.");
+ $units = 0;
+ }
+
+ $ppu = $sku->cost * ((100 - $this->discount_rate) / 100);
+
+ $costs += $units * $ppu;
}
return $costs;
diff --git a/src/app/PackageSku.php b/src/app/PackageSku.php
--- a/src/app/PackageSku.php
+++ b/src/app/PackageSku.php
@@ -12,10 +12,48 @@
protected $fillable = [
'package_id',
'sku_id',
+ 'cost',
'qty'
];
protected $casts = [
+ 'cost' => 'integer',
'qty' => 'integer'
];
+
+ /**
+ * Under this package, how much does this SKU cost?
+ *
+ * @return int The costs of this SKU under this package in cents.
+ */
+ public function cost()
+ {
+ $costs = 0;
+
+ $units = $this->qty - $this->sku->units_free;
+
+ if ($units < 0) {
+ \Log::debug(
+ "Package {$this->package_id} is misconfigured for more free units than qty."
+ );
+
+ $units = 0;
+ }
+
+ $ppu = $this->sku->cost * ((100 - $this->package->discount_rate) / 100);
+
+ $costs += $units * $ppu;
+
+ return $costs;
+ }
+
+ public function package()
+ {
+ return $this->belongsTo('App\Package');
+ }
+
+ public function sku()
+ {
+ return $this->belongsTo('App\Sku');
+ }
}
diff --git a/src/app/Plan.php b/src/app/Plan.php
--- a/src/app/Plan.php
+++ b/src/app/Plan.php
@@ -49,7 +49,11 @@
'description',
];
-
+ /**
+ * The list price for this package at the minimum configuration.
+ *
+ * @return int The costs in cents.
+ */
public function cost()
{
$costs = 0;
diff --git a/src/app/Providers/AppServiceProvider.php b/src/app/Providers/AppServiceProvider.php
--- a/src/app/Providers/AppServiceProvider.php
+++ b/src/app/Providers/AppServiceProvider.php
@@ -28,6 +28,7 @@
\App\Domain::observe(\App\Observers\DomainObserver::class);
\App\Entitlement::observe(\App\Observers\EntitlementObserver::class);
\App\Package::observe(\App\Observers\PackageObserver::class);
+ \App\PackageSku::observe(\App\Observers\PackageSkuObserver::class);
\App\Plan::observe(\App\Observers\PlanObserver::class);
\App\SignupCode::observe(\App\Observers\SignupCodeObserver::class);
\App\Sku::observe(\App\Observers\SkuObserver::class);
diff --git a/src/app/Sku.php b/src/app/Sku.php
--- a/src/app/Sku.php
+++ b/src/app/Sku.php
@@ -21,6 +21,7 @@
'description',
'cost',
'units_free',
+ // persist for annual domain registration
'period',
'handler_class',
'active'
@@ -41,6 +42,6 @@
return $this->belongsToMany(
'App\Package',
'package_skus'
- )->using('App\PackageSku')->withPivot(['qty']);
+ )->using('App\PackageSku')->withPivot(['cost', 'qty']);
}
}
diff --git a/src/app/User.php b/src/app/User.php
--- a/src/app/User.php
+++ b/src/app/User.php
@@ -118,6 +118,7 @@
'owner_id' => $this->id,
'wallet_id' => $wallet_id,
'sku_id' => $sku->id,
+ 'cost' => $sku->pivot->cost(),
'entitleable_id' => $user->id,
'entitleable_type' => User::class
]
diff --git a/src/app/Wallet.php b/src/app/Wallet.php
--- a/src/app/Wallet.php
+++ b/src/app/Wallet.php
@@ -3,6 +3,7 @@
namespace App;
use App\User;
+use Carbon\Carbon;
use Iatstuti\Database\Support\NullableFields;
use Illuminate\Database\Eloquent\Model;
@@ -55,6 +56,45 @@
}
}
+ /**
+ * Calculate the expected charges to this wallet.
+ *
+ * @return int
+ */
+ public function expectedCharges()
+ {
+ $charges = 0;
+
+ $changelogs = \App\Changelog::where('wallet_id', $this->id)->latest()->get();
+
+ foreach ($changelogs as $entry) {
+ // only if irrefundable
+ switch ($entry->action) {
+ case 'creating':
+ if ($entry->created_at < Carbon::now()->subDays(14)) {
+ if ($entry->created_at >= Carbon::now()->subMonths(1)) {
+ $charges += $entry->cost;
+ } else {
+ $diff = $entry->created_at->diffInMonths(Carbon::now());
+ $charges += $diff * $entry->cost;
+ }
+ }
+
+ break;
+
+ case 'charging':
+ $charges -= $entry->cost;
+
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return $charges;
+ }
+
/**
* Remove a controller from this wallet.
*
diff --git a/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php b/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
--- a/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
+++ b/src/database/migrations/2019_09_17_102628_create_sku_entitlements.php
@@ -36,6 +36,7 @@
$table->bigInteger('owner_id');
$table->bigInteger('entitleable_id');
$table->string('entitleable_type');
+ $table->integer('cost')->default(0)->nullable();
$table->string('wallet_id', 36);
$table->string('sku_id', 36);
$table->string('description')->nullable();
diff --git a/src/database/migrations/2019_12_10_100355_create_package_skus_table.php b/src/database/migrations/2019_12_10_100355_create_package_skus_table.php
--- a/src/database/migrations/2019_12_10_100355_create_package_skus_table.php
+++ b/src/database/migrations/2019_12_10_100355_create_package_skus_table.php
@@ -21,6 +21,8 @@
$table->string('sku_id', 36);
$table->integer('qty')->default(1);
+ $table->integer('cost')->default(0)->nullable();
+
$table->foreign('package_id')->references('id')->on('packages')
->onDelete('cascade')->onUpdate('cascade');
diff --git a/src/database/migrations/2019_12_10_100355_create_package_skus_table.php b/src/database/migrations/2020_02_24_095604_create_changelogs_table.php
copy from src/database/migrations/2019_12_10_100355_create_package_skus_table.php
copy to src/database/migrations/2020_02_24_095604_create_changelogs_table.php
--- a/src/database/migrations/2019_12_10_100355_create_package_skus_table.php
+++ b/src/database/migrations/2020_02_24_095604_create_changelogs_table.php
@@ -4,7 +4,8 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
-class CreatePackageSkusTable extends Migration
+// phpcs:ignore
+class CreateChangelogsTable extends Migration
{
/**
* Run the migrations.
@@ -14,18 +15,17 @@
public function up()
{
Schema::create(
- 'package_skus',
+ 'changelogs',
function (Blueprint $table) {
$table->bigIncrements('id');
- $table->string('package_id', 36);
+ $table->string('wallet_id', 36);
$table->string('sku_id', 36);
- $table->integer('qty')->default(1);
+ $table->string('action', 12);
+ $table->integer('cost')->default(0)->nullable();
+ $table->timestamps();
- $table->foreign('package_id')->references('id')->on('packages')
- ->onDelete('cascade')->onUpdate('cascade');
-
- $table->foreign('sku_id')->references('id')->on('skus')
- ->onDelete('cascade')->onUpdate('cascade');
+ //$table->foreign('wallet_id')->references('id')->on('wallets')->onDelete('cascade');
+ //$table->foreign('sku_id')->references('id')->on('skus')->onDelete('cascade');
}
);
}
@@ -37,6 +37,6 @@
*/
public function down()
{
- Schema::dropIfExists('package_skus');
+ Schema::dropIfExists('changelogs');
}
}
diff --git a/src/database/seeds/PackageSeeder.php b/src/database/seeds/PackageSeeder.php
--- a/src/database/seeds/PackageSeeder.php
+++ b/src/database/seeds/PackageSeeder.php
@@ -14,6 +14,10 @@
*/
public function run()
{
+ $skuGroupware = Sku::firstOrCreate(['title' => 'groupware']);
+ $skuMailbox = Sku::firstOrCreate(['title' => 'mailbox']);
+ $skuStorage = Sku::firstOrCreate(['title' => 'storage']);
+
$package = Package::create(
[
'title' => 'kolab',
@@ -23,9 +27,9 @@
);
$skus = [
- Sku::firstOrCreate(['title' => 'mailbox']),
- Sku::firstOrCreate(['title' => 'storage']),
- Sku::firstOrCreate(['title' => 'groupware'])
+ $skuMailbox,
+ $skuGroupware,
+ $skuStorage
];
$package->skus()->saveMany($skus);
@@ -33,7 +37,7 @@
// This package contains 2 units of the storage SKU, which just so happens to also
// be the number of SKU free units.
$package->skus()->updateExistingPivot(
- Sku::firstOrCreate(['title' => 'storage']),
+ $skuStorage,
['qty' => 2],
false
);
@@ -47,8 +51,8 @@
);
$skus = [
- Sku::firstOrCreate(['title' => 'mailbox']),
- Sku::firstOrCreate(['title' => 'storage'])
+ $skuMailbox,
+ $skuStorage
];
$package->skus()->saveMany($skus);
diff --git a/src/tests/Feature/BillingTest.php b/src/tests/Feature/BillingTest.php
new file mode 100644
--- /dev/null
+++ b/src/tests/Feature/BillingTest.php
@@ -0,0 +1,262 @@
+<?php
+
+namespace Tests\Feature;
+
+use Carbon\Carbon;
+use Illuminate\Support\Facades\Queue;
+use Tests\TestCase;
+
+class BillingTest extends TestCase
+{
+ public function setUp(): void
+ {
+ parent::setUp();
+
+ $this->deleteTestUser('jane@kolabnow.com');
+
+ $this->user = $this->getTestUser('jane@kolabnow.com');
+ $this->package = \App\Package::where('title', 'kolab')->first();
+ $this->user->assignPackage($this->package);
+
+ $this->wallet = $this->user->wallets->first();
+
+ $this->wallet_id = $this->wallet->id;
+ }
+
+ public function tearDown(): void
+ {
+ $this->deleteTestUser('jane@kolabnow.com');
+ $this->deleteTestUser('jack@kolabnow.com');
+
+ parent::tearDown();
+ }
+
+ public function testTouchAndGo(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ $this->assertCount(4, $changelogs);
+
+ $this->deleteTestUser('jane@kolabnow.com');
+
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ $this->assertCount(8, $changelogs);
+
+ $costs = $changelogs->sum('cost');
+
+ $this->assertTrue($costs == 0);
+ }
+
+ public function testNearFullTrial(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subDays(13);
+ $entry->updated_at = Carbon::now()->subDays(13);
+ $entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ $this->deleteTestUser('jane@kolabnow.com');
+
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ $this->assertCount(8, $changelogs);
+
+ $costs = $changelogs->sum('cost');
+
+ $this->assertTrue($costs == 0);
+
+ $this->assertTrue($this->wallet->expectedCharges() == 0);
+ }
+
+ public function testFullTrial(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subDays(14);
+ $entry->updated_at = Carbon::now()->subDays(14);
+ $entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ $this->assertTrue($this->wallet->expectedCharges() == 999);
+ }
+
+ public function testAddtStorage(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subDays(16);
+ $entry->updated_at = Carbon::now()->subDays(16);
+ $entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ $this->assertTrue($this->wallet->expectedCharges() == 999);
+
+ $entitlement = \App\Entitlement::create(
+ [
+ 'owner_id' => $this->user->id,
+ 'wallet_id' => $this->wallet_id,
+ 'sku_id' => \App\Sku::firstOrCreate(['title' => 'storage'])->id,
+ 'cost' => 25,
+ 'entitleable_id' => $this->user->id,
+ 'entitleable_type' => \App\User::class
+ ]
+ );
+
+ $changelog = \App\Changelog::where('wallet_id', $this->wallet_id)->latest()->first();
+
+ $changelog->created_at = Carbon::now()->subDays(14);
+ $changelog->updated_at = Carbon::now()->subDays(14);
+
+ $changelog->save();
+
+ $this->assertTrue($this->wallet->expectedCharges() == 1024);
+ }
+
+ public function testOutRunTrial(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subDays(15);
+ $entry->updated_at = Carbon::now()->subDays(15);
+ $entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ $this->assertTrue($this->wallet->expectedCharges() >= 999);
+ }
+
+ public function testFifthWeek(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subWeeks(5);
+ $entry->updated_at = Carbon::now()->subWeeks(5);
+ $entry->save();
+
+ $addt_entry = \App\Changelog::create(
+ [
+ 'wallet_id' => $entry->wallet_id,
+ 'sku_id' => $entry->sku_id,
+ 'action' => 'charging',
+ 'cost' => $entry->cost
+ ]
+ );
+
+ $addt_entry->created_at = Carbon::now()->subMonths(1);
+ $addt_entry->updated_at = Carbon::now()->subMonths(1);
+
+ $addt_entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ // A fresh query should now return 8 entries.
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+ $this->assertCount(8, $changelogs);
+
+ $this->assertTrue($this->wallet->expectedCharges() == 0);
+ }
+
+ public function testSecondMonth(): void
+ {
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subMonths(2);
+ $entry->updated_at = Carbon::now()->subMonths(2);
+ $entry->save();
+
+ $addt_entry = \App\Changelog::create(
+ [
+ 'wallet_id' => $entry->wallet_id,
+ 'sku_id' => $entry->sku_id,
+ 'action' => 'charging',
+ 'cost' => $entry->cost
+ ]
+ );
+
+ $addt_entry->created_at = Carbon::now()->subMonths(1);
+ $addt_entry->updated_at = Carbon::now()->subMonths(1);
+
+ $addt_entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ // A fresh query should now return 8 entries.
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)->get();
+ $this->assertCount(8, $changelogs);
+
+ $this->assertTrue($this->wallet->expectedCharges() >= 999);
+
+ $changelogs = \App\Changelog::where('wallet_id', $this->wallet_id)
+ ->where('action', 'charging')->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->updated_at = Carbon::now();
+ $entry->save();
+ }
+
+ $this->assertTrue($this->wallet->expectedCharges() == 999);
+ }
+
+ public function testWithDiscount(): void
+ {
+ $package = \App\Package::create(
+ [
+ 'title' => 'kolab-kube',
+ 'description' => 'Kolab for Kube fans',
+ 'discount_rate' => 50
+ ]
+ );
+
+ $skus = [
+ \App\Sku::firstOrCreate(['title' => 'mailbox']),
+ \App\Sku::firstOrCreate(['title' => 'storage']),
+ \App\Sku::firstOrCreate(['title' => 'groupware'])
+ ];
+
+ $package->skus()->saveMany($skus);
+
+ $package->skus()->updateExistingPivot(
+ \App\Sku::firstOrCreate(['title' => 'storage']),
+ ['qty' => 2],
+ false
+ );
+
+ $user = $this->getTestUser('jack@kolabnow.com');
+
+ $package = \App\Package::where('title', 'kolab-kube')->first();
+ $user->assignPackage($package);
+
+ $wallet = $user->wallets->first();
+
+ $wallet_id = $wallet->id;
+
+ $changelogs = \App\Changelog::where('wallet_id', $wallet_id)->get();
+
+ foreach ($changelogs as $entry) {
+ $entry->created_at = Carbon::now()->subDays(15);
+ $entry->updated_at = Carbon::now()->subDays(15);
+ $entry->save();
+ }
+
+ $this->assertCount(4, $changelogs);
+
+ $this->assertTrue($wallet->expectedCharges() == 500);
+ }
+}
diff --git a/src/tests/Feature/EntitlementTest.php b/src/tests/Feature/EntitlementTest.php
--- a/src/tests/Feature/EntitlementTest.php
+++ b/src/tests/Feature/EntitlementTest.php
@@ -84,10 +84,11 @@
$owner->addEntitlement($entitlement_mailbox);
$this->assertTrue($owner->entitlements()->count() == 3);
- $this->assertTrue($sku_domain->entitlements()->where('owner_id', $owner->id)->count() == 1);
- $this->assertTrue($sku_mailbox->entitlements()->where('owner_id', $owner->id)->count() == 2);
+ $this->assertCount(1, $sku_domain->entitlements()->where('owner_id', $owner->id)->get());
+ $this->assertCount(2, $sku_mailbox->entitlements()->where('owner_id', $owner->id)->get());
$this->assertTrue($wallet->entitlements()->count() == 3);
- $this->assertTrue($wallet->fresh()->balance < 0.00);
+
+ //$this->assertTrue($wallet->fresh()->balance < 0.00);
}
public function testAddExistingEntitlement(): void
diff --git a/src/tests/Feature/SkuTest.php b/src/tests/Feature/SkuTest.php
--- a/src/tests/Feature/SkuTest.php
+++ b/src/tests/Feature/SkuTest.php
@@ -76,7 +76,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
// \App\Handlers\Domain SKU
$sku = Sku::where('title', 'domain')->first();
@@ -118,7 +119,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
// \App\Handlers\DomainRegistration SKU
$sku = Sku::where('title', 'domain-registration')->first();
@@ -147,7 +149,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
// \App\Handlers\DomainHosting SKU
$sku = Sku::where('title', 'domain-hosting')->first();
@@ -176,7 +179,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
// \App\Handlers\Groupware SKU
$sku = Sku::where('title', 'groupware')->first();
@@ -205,7 +209,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
// \App\Handlers\Storage SKU
$sku = Sku::where('title', 'storage')->first();
@@ -229,7 +234,8 @@
$this->assertCount(0, $entitlements);
}
- $this->assertEquals($balance, $wallet->balance);
+ // TODO
+ //$this->assertEquals($balance, $wallet->balance);
}
public function testSkuPackages(): void

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 6:54 PM (5 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18825765
Default Alt Text
D964.1775242440.diff (25 KB)

Event Timeline