expect(Inspector::typehint($inspector[0]))->toBe('');
$inspector = Inspector::parameters($this->class, 'parameterByReference');
expect(Inspector::typehint($inspector[0]))->toBe('');
});
it("returns parameter typehint", function () {
$inspector = Inspector::parameters($this->class, 'exceptionTypeHint');
$typehint = Inspector::typehint(current($inspector));
expect($typehint)->toBeA('string');
expect($typehint)->toBe('\\Exception');
$inspector = Inspector::parameters($this->class, 'arrayTypeHint');
$typehint = Inspector::typehint(current($inspector));
expect($typehint)->toBeA('string');
expect($typehint)->toBe('array');
$inspector = Inspector::parameters($this->class, 'callableTypeHint');
$typehint = Inspector::typehint(current($inspector));
expect($typehint)->toBeA('string');
expect($typehint)->toBe('callable');
});
it("returns parameter typehint for scalar type hints", function () {
skipIf(PHP_MAJOR_VERSION < 7);
$inspector = Inspector::parameters('Kahlan\\Spec\\Fixture\\Analysis\\ScalarTypeHintsClass', 'intTypeHint');
$typehint = Inspector::typehint(current($inspector));
expect($typehint)->toBeA('string');
expect($typehint)->toBe('int');
$inspector = Inspector::parameters('Kahlan\\Spec\\Fixture\\Analysis\\ScalarTypeHintsClass', 'boolTypeHint');
$typehint = Inspector::typehint(current($inspector));
expect($typehint)->toBeA('string');
expect($typehint)->toBe('bool');
});
});
});