pdo = new PDO('sqlite::memory:'); $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->pdo->exec( 'CREATE TABLE order_status_mappings ( id INTEGER PRIMARY KEY AUTOINCREMENT, integration_id INTEGER NOT NULL, shoppro_status_code VARCHAR(64) NOT NULL, shoppro_status_name VARCHAR(128) NULL, orderpro_status_code VARCHAR(64) NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL )' ); $this->repository = new OrderStatusMappingRepository($this->pdo); } public function testReplaceAndReadMappingsForIntegration(): void { $this->repository->replaceForIntegration(10, [ [ 'shoppro_status_code' => 'new', 'shoppro_status_name' => 'Nowe', 'orderpro_status_code' => 'new', ], [ 'shoppro_status_code' => 'paid', 'shoppro_status_name' => 'Oplacone', 'orderpro_status_code' => 'completed', ], ]); $rows = $this->repository->listByIntegration(10); self::assertArrayHasKey('new', $rows); self::assertSame('Nowe', $rows['new']['shoppro_status_name']); self::assertSame('new', $rows['new']['orderpro_status_code']); self::assertSame('completed', $rows['paid']['orderpro_status_code']); } public function testListOrderProToShopProMapNormalizesCodes(): void { $this->repository->replaceForIntegration(11, [ [ 'shoppro_status_code' => 'Paid', 'shoppro_status_name' => 'Oplacone', 'orderpro_status_code' => 'Completed', ], ]); $map = $this->repository->listOrderProToShopProMap(11); self::assertSame('paid', $map['completed']); } }