getInvoiceModel(); $sut = new InvoiceModelActivityHydrator(); $result = $sut->hydrate($model); $this->assertModelStructure($result); $model->getQuery()->setActivity(null); $result = $sut->hydrate($model); self::assertEmpty($result); } protected function assertModelStructure(array $model) { $keys = [ 'activity.id', 'activity.name', 'activity.comment', 'activity.meta.foo-activity', ]; $givenKeys = array_keys($model); sort($keys); sort($givenKeys); $this->assertEquals($keys, $givenKeys); } }