convert([ 'surname' => ' asdf', 'fake_age' => 3, 'emails' => [ 'sfdgsa', 'af234f', 'asdf33333' ], 'authors' => [ [ 'name' => 'Tolkien', ], [ 'name' => 'Sapkovsky' ] ], 'buy' => [ 'phrase' => 'Buy buy!!!', 'length' => 10, 'isFirst' => true, 'extraData2' => '1234' ], 'extraData1' => 'qwer' ], HelloRequest::class); $this->assertInstanceOf(HelloRequest::class, $dto); $this->assertEquals('asdf', $dto->surname); $this->assertEquals(3, $dto->age); $this->assertEquals([ 'sfdgsa', 'af234f', 'asdf33333' ], $dto->emails); $this->assertInstanceOf(BuyRequest::class, $dto->buy); $this->assertEquals('Buy buy!!!', $dto->buy->phrase); $this->assertEquals(10, $dto->buy->length); $this->assertEquals(true, $dto->buy->isFirst); $this->assertCount(2, $dto->authors); $this->assertEquals('Tolkien', $dto->authors[0]->name); $this->assertEquals('Sapkovsky', $dto->authors[1]->name); } }