mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2026-02-16 14:39:37 +00:00
Merge branch 'gtin'
This commit is contained in:
commit
7a83581597
71 changed files with 1405 additions and 92 deletions
|
|
@ -108,6 +108,7 @@ class BulkSearchResponseDTOTest extends KernelTestCase
|
|||
'manufacturing_status' => NULL,
|
||||
'provider_url' => NULL,
|
||||
'footprint' => NULL,
|
||||
'gtin' => NULL,
|
||||
),
|
||||
'source_field' => 'mpn',
|
||||
'source_keyword' => '1234',
|
||||
|
|
@ -129,6 +130,7 @@ class BulkSearchResponseDTOTest extends KernelTestCase
|
|||
'manufacturing_status' => NULL,
|
||||
'provider_url' => NULL,
|
||||
'footprint' => NULL,
|
||||
'gtin' => NULL,
|
||||
),
|
||||
'source_field' => 'name',
|
||||
'source_keyword' => '1234',
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||
*/
|
||||
namespace App\Tests\Services\InfoProviderSystem\DTOs;
|
||||
|
||||
use App\Services\InfoProviderSystem\DTOs\PriceDTO;
|
||||
use App\Services\InfoProviderSystem\DTOs\PurchaseInfoDTO;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
|
|
@ -33,4 +34,40 @@ class PurchaseInfoDTOTest extends TestCase
|
|||
$this->expectExceptionMessage('The prices array must only contain PriceDTO instances');
|
||||
new PurchaseInfoDTO('test', 'test', [new \stdClass()]);
|
||||
}
|
||||
|
||||
public function testPricesIncludesVATHandling(): void
|
||||
{
|
||||
$pricesTrue = [
|
||||
new PriceDTO(minimum_discount_amount: 1, price: '10.00', currency_iso_code: 'USD', includes_tax: true),
|
||||
new PriceDTO(minimum_discount_amount: 5, price: '9.00', currency_iso_code: 'USD', includes_tax: true),
|
||||
];
|
||||
$pricesFalse = [
|
||||
new PriceDTO(minimum_discount_amount: 1, price: '10.00', currency_iso_code: 'USD', includes_tax: false),
|
||||
new PriceDTO(minimum_discount_amount: 5, price: '9.00', currency_iso_code: 'USD', includes_tax: false),
|
||||
];
|
||||
$pricesMixed = [
|
||||
new PriceDTO(minimum_discount_amount: 1, price: '10.00', currency_iso_code: 'USD', includes_tax: true),
|
||||
new PriceDTO(minimum_discount_amount: 5, price: '9.00', currency_iso_code: 'USD', includes_tax: false),
|
||||
];
|
||||
$pricesNull = [
|
||||
new PriceDTO(minimum_discount_amount: 1, price: '10.00', currency_iso_code: 'USD', includes_tax: null),
|
||||
new PriceDTO(minimum_discount_amount: 5, price: '9.00', currency_iso_code: 'USD', includes_tax: null),
|
||||
];
|
||||
|
||||
//If the prices_include_vat parameter is given, use it:
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesMixed, prices_include_vat: true);
|
||||
$this->assertTrue($dto->prices_include_vat);
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesMixed, prices_include_vat: false);
|
||||
$this->assertFalse($dto->prices_include_vat);
|
||||
|
||||
//If the prices_include_vat parameter is not given, try to deduct it from the prices:
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesTrue);
|
||||
$this->assertTrue($dto->prices_include_vat);
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesFalse);
|
||||
$this->assertFalse($dto->prices_include_vat);
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesMixed);
|
||||
$this->assertNull($dto->prices_include_vat);
|
||||
$dto = new PurchaseInfoDTO('test', 'test', $pricesNull);
|
||||
$this->assertNull($dto->prices_include_vat);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ class DTOtoEntityConverterTest extends WebTestCase
|
|||
minimum_discount_amount: 5,
|
||||
price: "10.0",
|
||||
currency_iso_code: 'EUR',
|
||||
includes_tax: true,
|
||||
);
|
||||
|
||||
$entity = $this->service->convertPrice($dto);
|
||||
|
|
@ -115,6 +114,7 @@ class DTOtoEntityConverterTest extends WebTestCase
|
|||
order_number: 'TestOrderNumber',
|
||||
prices: $prices,
|
||||
product_url: 'https://example.com',
|
||||
prices_include_vat: true,
|
||||
);
|
||||
|
||||
$entity = $this->service->convertPurchaseInfo($dto);
|
||||
|
|
@ -122,6 +122,7 @@ class DTOtoEntityConverterTest extends WebTestCase
|
|||
$this->assertSame($dto->distributor_name, $entity->getSupplier()->getName());
|
||||
$this->assertSame($dto->order_number, $entity->getSupplierPartNr());
|
||||
$this->assertEquals($dto->product_url, $entity->getSupplierProductUrl());
|
||||
$this->assertTrue($dto->prices_include_vat);
|
||||
}
|
||||
|
||||
public function testConvertFileWithName(): void
|
||||
|
|
@ -159,12 +160,13 @@ class DTOtoEntityConverterTest extends WebTestCase
|
|||
$shopping_infos = [new PurchaseInfoDTO('TestDistributor', 'TestOrderNumber', [new PriceDTO(1, "10.0", 'EUR')])];
|
||||
|
||||
$dto = new PartDetailDTO(
|
||||
provider_key: 'test_provider', provider_id: 'test_id', provider_url: 'https://invalid.invalid/test_id',
|
||||
name: 'TestPart', description: 'TestDescription', category: 'TestCategory',
|
||||
manufacturer: 'TestManufacturer', mpn: 'TestMPN', manufacturing_status: ManufacturingStatus::EOL,
|
||||
preview_image_url: 'https://invalid.invalid/image.png',
|
||||
footprint: 'DIP8', notes: 'TestNotes', mass: 10.4,
|
||||
parameters: $parameters, datasheets: $datasheets, vendor_infos: $shopping_infos, images: $images
|
||||
provider_key: 'test_provider', provider_id: 'test_id', name: 'TestPart',
|
||||
description: 'TestDescription', category: 'TestCategory', manufacturer: 'TestManufacturer',
|
||||
mpn: 'TestMPN', preview_image_url: 'https://invalid.invalid/image.png',
|
||||
manufacturing_status: ManufacturingStatus::EOL,
|
||||
provider_url: 'https://invalid.invalid/test_id',
|
||||
footprint: 'DIP8', gtin: "1234567890123", notes: 'TestNotes', datasheets: $datasheets,
|
||||
images: $images, parameters: $parameters, vendor_infos: $shopping_infos, mass: 10.4
|
||||
);
|
||||
|
||||
$entity = $this->service->convertPart($dto);
|
||||
|
|
@ -180,6 +182,8 @@ class DTOtoEntityConverterTest extends WebTestCase
|
|||
$this->assertEquals($dto->mass, $entity->getMass());
|
||||
$this->assertEquals($dto->footprint, $entity->getFootprint());
|
||||
|
||||
$this->assertEquals($dto->gtin, $entity->getGtin());
|
||||
|
||||
//We just check that the lenghts of parameters, datasheets, images and shopping infos are the same
|
||||
//The actual content is tested in the corresponding tests
|
||||
$this->assertCount(count($parameters), $entity->getParameters());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue