Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117799126
D964.1775265908.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
25 KB
Referenced Files
None
Subscribers
None
D964.1775265908.diff
View Options
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
diff --git a/src/tests/TestCase.php b/src/tests/TestCase.php
--- a/src/tests/TestCase.php
+++ b/src/tests/TestCase.php
@@ -11,6 +11,16 @@
{
use CreatesApplication;
+ protected function assertEqual($a, $b)
+ {
+ $this->assertTrue($a instanceof int);
+ $this->assertTrue($b instanceof int);
+
+ $this->assertTrue($a == $b);
+
+ return true;
+ }
+
protected function deleteTestDomain($name)
{
Queue::fake();
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 4, 1:25 AM (9 h, 11 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18827567
Default Alt Text
D964.1775265908.diff (25 KB)
Attached To
Mode
D964: Implement a changelog to further the debiting of wallet balances
Attached
Detach File
Event Timeline