Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JalalLinuX committed Oct 30, 2023
1 parent c85256b commit 63f0ccd
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 18 deletions.
9 changes: 6 additions & 3 deletions src/Entities/Asset.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,20 +68,23 @@ public function entityType(): ?EnumEntityType
* 'customerId' from the request body example (below) to create new Asset entity.
*
*
* @param string|null $name
* @param string|null $assetProfileId
* @return self
*
* @author Sabiee
*
* @group TENANT_ADMIN | CUSTOMER_USER
*/
public function saveAsset(string $assetProfileId = null): static
public function saveAsset(string $name = null, string $assetProfileId = null): static
{
$assetProfileId = $assetProfileId ?? $this->forceAttribute('assetProfileId')->id;
$name = $name ?? $this->forceAttribute('name');

Thingsboard::validation(! Str::isUuid($assetProfileId), 'uuid', ['attribute' => 'assetProfileId']);

$payload = array_merge($this->attributesToArray(), [
'name' => $this->forceAttribute('name'),
'assetProfileId' => new Id($assetProfileId, EnumEntityType::ASSET_PROFILE()),
'name' => $name, 'assetProfileId' => new Id($assetProfileId, EnumEntityType::ASSET_PROFILE()),
]);

return tap($this, fn () => $this->fill($this->api()->post('asset', $payload)->json()));
Expand Down
20 changes: 13 additions & 7 deletions tests/Unit/Asset/AssignAssetToEdgeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,37 @@

use JalalLinuX\Thingsboard\Entities\Asset;
use JalalLinuX\Thingsboard\Enums\EnumAuthority;
use JalalLinuX\Thingsboard\Infrastructure\PaginationArguments;
use JalalLinuX\Thingsboard\Tests\TestCase;

class AssignAssetToEdgeTest extends TestCase
{
public function testCorrectEdgeId()
{
$tenantUser = $this->thingsboardUser(EnumAuthority::TENANT_ADMIN());
$assetId = thingsboard($tenantUser)->asset()->getTenantAssetInfos(PaginationArguments::make())->collect()->first()->id->id;
$assetProfileId = thingsboard($tenantUser)->assetProfile()->getDefaultAssetProfileInfo()->id->id;
$newAsset = thingsboard($tenantUser)->asset()->saveAsset("- {$this->faker->sentence(3)}", $assetProfileId);
$edge = thingsboard($tenantUser)->edge()->saveEdge("- {$this->faker->sentence(3)}");

$asset = thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $assetId);
$asset = thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $newAsset->id->id);
$this->assertInstanceOf(Asset::class, $asset);

$edge->deleteEdge();
$newAsset->deleteAsset();
}

public function testInvalidEdgeUuid()
{
$uuid = $this->faker->uuid;
$tenantUser = $this->thingsboardUser(EnumAuthority::TENANT_ADMIN());
$assetId = thingsboard($tenantUser)->asset()->getTenantAssetInfos(PaginationArguments::make())->collect()->first()->id->id;
$assetProfileId = thingsboard($tenantUser)->assetProfile()->getDefaultAssetProfileInfo()->id->id;
$newAsset = thingsboard($tenantUser)->asset()->saveAsset("- {$this->faker->sentence(3)}", $assetProfileId);

$this->expectExceptionCode(404);
$this->expectExceptionMessageMatches("/{$uuid}/");
thingsboard($tenantUser)->asset()->assignAssetToEdge($uuid, $assetId);
try {
$this->expectExceptionCode(404);
$this->expectExceptionMessageMatches("/{$uuid}/");
thingsboard($tenantUser)->asset()->assignAssetToEdge($uuid, $newAsset->id->id);
} finally {
$newAsset->deleteAsset();
}
}
}
10 changes: 6 additions & 4 deletions tests/Unit/Asset/GetEdgeAssetsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,19 @@ class GetEdgeAssetsTest extends TestCase
public function testStructure()
{
$tenantUser = $this->thingsboardUser(EnumAuthority::TENANT_ADMIN());
$assetId = thingsboard($tenantUser)->asset()->getTenantAssetInfos(PaginationArguments::make())->first()->id->id;
$assetProfileId = thingsboard($tenantUser)->assetProfile()->getDefaultAssetProfileInfo()->id->id;
$newAsset = thingsboard($tenantUser)->asset()->saveAsset("- {$this->faker->sentence(3)}", $assetProfileId);
$edge = thingsboard($tenantUser)->edge()->saveEdge("- {$this->faker->sentence(3)}");

thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $assetId);
thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $newAsset->id->id);

$assets = thingsboard($tenantUser)->asset()->getEdgeAssets(PaginationArguments::make(), $edge->id->id);
$edge->deleteEdge();
$newAsset->deleteAsset();

$assets->each(function ($asset) use ($assetId) {
$assets->each(function ($asset) use ($newAsset) {
$this->assertInstanceOf(Asset::class, $asset);
$this->assertTrue($asset->id->id == $assetId);
$this->assertTrue($asset->id->id == $newAsset->id->id);
});
}
}
9 changes: 5 additions & 4 deletions tests/Unit/Asset/UnAssignAssetFromEdgeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,24 @@

use JalalLinuX\Thingsboard\Entities\Asset;
use JalalLinuX\Thingsboard\Enums\EnumAuthority;
use JalalLinuX\Thingsboard\Infrastructure\PaginationArguments;
use JalalLinuX\Thingsboard\Tests\TestCase;

class UnAssignAssetFromEdgeTest extends TestCase
{
public function testCorrectAssetId()
{
$tenantUser = $this->thingsboardUser(EnumAuthority::TENANT_ADMIN());
$assetId = thingsboard($tenantUser)->asset()->getTenantAssetInfos(PaginationArguments::make())->collect()->first()->id->id;
$assetProfileId = thingsboard($tenantUser)->assetProfile()->getDefaultAssetProfileInfo()->id->id;
$newAsset = thingsboard($tenantUser)->asset()->saveAsset("- {$this->faker->sentence(3)}", $assetProfileId);
$edge = thingsboard($tenantUser)->edge()->saveEdge("- {$this->faker->sentence(3)}");

$asset = thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $assetId);
$asset = thingsboard($tenantUser)->asset()->assignAssetToEdge($edge->id->id, $newAsset->id->id);
$this->assertInstanceOf(Asset::class, $asset);

$asset = thingsboard($tenantUser)->asset()->unassignAssetFromEdge($edge->id->id, $assetId);
$asset = thingsboard($tenantUser)->asset()->unassignAssetFromEdge($edge->id->id, $newAsset->id->id);
$this->assertInstanceOf(Asset::class, $asset);

$edge->deleteEdge();
$newAsset->deleteAsset();
}
}

0 comments on commit 63f0ccd

Please sign in to comment.