<?php
declare(strict_types=1);
namespace WsdlToPhp\PhpGenerator\Tests\Component;
use WsdlToPhp\PhpGenerator\Component\PhpInterface as PhpInterfaceComponent;
use WsdlToPhp\PhpGenerator\Element\PhpAnnotation as PhpAnnotationElement;
use WsdlToPhp\PhpGenerator\Element\PhpFunctionParameter as PhpFunctionParameterElement;
use WsdlToPhp\PhpGenerator\Element\PhpMethod;
use WsdlToPhp\PhpGenerator\Element\PhpProperty as PhpPropertyElement;
/**
* @internal
* @coversDefaultClass
*/
class PhpInterfaceTest extends AbstractComponent
{
public function testSimpleToString()
{
$interface = new PhpInterfaceComponent('Foo', true, null, [
'stdClass',
]);
$interface
->addAnnotationBlock('@var string')
->addConstant('FOO', 'theValue')
->addAnnotationBlock('@var string')
->addConstant('BAR', 'theOtherValue')
->addAnnotationBlock(new PhpAnnotationElement('var', 'int'))
->addProperty('bar', 1)
->addAnnotationBlock(new PhpAnnotationElement('var', 'bool'))
->addPropertyElement(new PhpPropertyElement('sample', true))
->addAnnotationBlock([
new PhpAnnotationElement(PhpAnnotationElement::NO_NAME, 'This method is very useful'),
new PhpAnnotationElement('date', '2012-03-01'),
'@return mixed',
])
->addMethodElement(new PhpMethod('getMyValue', [
new PhpFunctionParameterElement('asString', true),
'unusedParameter',
]))
->addAnnotationBlock([
new PhpAnnotationElement(PhpAnnotationElement::NO_NAME, 'This method is very useless'),
new PhpAnnotationElement('date', '2012-03-01'),
'@return void',
])
->addMethod('uselessMethod', [
new PhpFunctionParameterElement('uselessParameter', null),
'unusedParameter',
])
;
$this->assertSameContent(__FUNCTION__, $interface);
}
public function testSimpleToStringWithReturnType()
{
$interface = new PhpInterfaceComponent('Foo', true, null, [
'stdClass',
]);
$interface
->addAnnotationBlock('@var string')
->addConstant('FOO', 'theValue')
->addAnnotationBlock('@var string')
->addConstant('BAR', 'theOtherValue')
->addAnnotationBlock(new PhpAnnotationElement('var', 'int'))
->addProperty('bar', 1)
->addAnnotationBlock(new PhpAnnotationElement('var', 'bool'))
->addPropertyElement(new PhpPropertyElement('sample', true))
->addAnnotationBlock([
new PhpAnnotationElement(PhpAnnotationElement::NO_NAME, 'This method is very useful'),
new PhpAnnotationElement('date', '2012-03-01'),
'@return mixed',
])
->addMethodElement(new PhpMethod('getMyValue', [
new PhpFunctionParameterElement('asString', true),
'unusedParameter',
]))
->addAnnotationBlock([
new PhpAnnotationElement(PhpAnnotationElement::NO_NAME, 'This method is very useless'),
new PhpAnnotationElement('date', '2012-03-01'),
'@return void',
])
->addMethod('uselessMethod', [
new PhpFunctionParameterElement('uselessParameter', null),
'unusedParameter',
], 'void')
;
$this->assertSameContent(__FUNCTION__, $interface);
}
}
|