createLoader(); $travel = new Travel(); $patchedRoom = new Room(); $patchedRoom->id = 1; $patchedRoom->available = 2; $patchedRoom->status = 'Frei'; $patchedRoom->price = 100.0; $otherRoom = new Room(); $otherRoom->id = 2; $otherRoom->available = 1; $otherRoom->status = 'Frei'; $otherRoom->price = 150.0; $travel->rooms = [$patchedRoom, $otherRoom]; $liveRoom = new Room(); $liveRoom->id = 1; $liveRoom->available = 0; $liveRoom->status = 'Anfrage'; $liveRoom->price = 110.0; $liveRoom->label = 'Live room'; $liveRoom->category = 'Live category'; $loader->patchRoomAvailabilities($travel, new BaseData([ 1 => $liveRoom, ])); $this->assertSame(0, $travel->rooms[0]->available); $this->assertSame('Anfrage', $travel->rooms[0]->status); $this->assertSame(110.0, $travel->rooms[0]->price); $this->assertSame('Live room', $travel->rooms[0]->label); $this->assertSame('Live category', $travel->rooms[0]->category); $this->assertSame(1, $travel->rooms[1]->available); $this->assertSame('Frei', $travel->rooms[1]->status); $this->assertSame(150.0, $travel->rooms[1]->price); } private function createLoader(): TravelLoader { return new TravelLoader( $this->createMock(HotelLoader::class), $this->createMock(TravelParser::class), 'https://example.com', new ArrayAdapter(), $this->createMock(FilesystemOperator::class), ); } }