<?php
namespace WsdlToPhp\PackageGenerator\Tests\Model;
use WsdlToPhp\PackageGenerator\Tests\TestCase;
use WsdlToPhp\PackageGenerator\Model\Service;
class MethodTest extends TestCase
{
/**
*
*/
public function testGetMethodName()
{
$service = new Service(self::getBingGeneratorInstance(), 'Foo');
$service->addMethod('getId', 'string', 'string');
$service->addMethod('getid', 'string', 'string');
$service->addMethod('getIdString', 'string', 'id', false);
$service->addMethod('getIdInt', 'int', 'id', false);
$this->assertSame('getId', $service->getMethod('getId')->getMethodName());
$this->assertSame('getid_1', $service->getMethod('getid')->getMethodName());
$this->assertSame('getIdStringString', $service->getMethod('getIdString')->getMethodName());
$this->assertSame('getIdIntInt', $service->getMethod('getIdInt')->getMethodName());
}
/**
*
*/
public function testGetMethodNameCalledTwice()
{
$service = new Service(self::getBingGeneratorInstance(), 'Foo');
$service->addMethod('getId', 'string', 'string');
$service->addMethod('get.id', 'string', 'string');
$service->addMethod('getIdString', 'string', 'id', false);
$service->addMethod('getIdInt', 'int', 'id', false);
$service->addMethod('list', 'int', 'id', true);
$method = $service->getMethod('get.id');
$this->assertSame('get_id', $method->getMethodName());
$this->assertSame('get_id', $method->getMethodName());
$method = $service->getMethod('list');
$this->assertSame('_list', $method->getMethodName());
$this->assertSame('_list', $method->getMethodName());
}
/**
*
*/
public function testMultipleServicesSameMethods()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('Login', 'int', 'id');
$service2 = new Service(self::getBingGeneratorInstance(), 'Login');
$service2->addMethod('login', 'int', 'id');
$service3 = new Service(self::getBingGeneratorInstance(), 'login');
$service3->addMethod('Login', 'int', 'id');
$this->assertSame('Login', $service1->getMethod('Login')->getMethodName());
$this->assertSame('login_1', $service2->getMethod('login')->getMethodName());
$this->assertSame('Login', $service3->getMethod('Login')->getMethodName());
}
/**
*
*/
public function testMultipleServicesSameMethodsWithoutPurging()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('Login', 'int', 'id');
$service2 = new Service(self::getBingGeneratorInstance(), 'Login');
$service2->addMethod('login', 'int', 'id');
$service3 = new Service(self::getBingGeneratorInstance(), 'login');
$service3->addMethod('Login', 'int', 'id');
$this->assertSame('Login', $service1->getMethod('Login')->getMethodName());
$this->assertSame('login_1', $service2->getMethod('login')->getMethodName());
$this->assertSame('Login', $service3->getMethod('Login')->getMethodName());
}
/**
*
*/
public function testGetCleanNameWithOneInt()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('0MyOperation', 'int', 'id');
$this->assertSame('_MyOperation', $service1->getMethod('0MyOperation')->getCleanName());
}
/**
*
*/
public function testGetCleanNameWithMultipleInt()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('0123456789MyOperation', 'int', 'id');
$this->assertSame('_MyOperation', $service1->getMethod('0123456789MyOperation')->getCleanName());
}
/**
*
*/
public function testNameIsCleanWithOneInt()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('0MyOperation', 'int', 'id');
$this->assertFalse($service1->getMethod('0MyOperation')->nameIsClean());
}
/**
*
*/
public function testNameIsCleanWithMultipleInt()
{
Service::purgeUniqueNames();
$service1 = new Service(self::getBingGeneratorInstance(), 'Login');
$service1->addMethod('0123456789MyOperation', 'int', 'id');
$this->assertFalse($service1->getMethod('0123456789MyOperation')->nameIsClean());
}
}
|