Skip to content

Commit 64f128e

Browse files
committed
Add method magic to direct call in Resource
1 parent cb8f0ea commit 64f128e

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,7 @@ $credential = new Credential('myUser', 'myPassword');
4040
$mta = new Mta($server, $credential);
4141

4242
$response = $mta->getResource('someResource')->call('callableFunction');
43+
//or
44+
$response = $mta->getResource('someResource')->callableFunction();
4345
var_dump($response);
4446
```

src/Model/Resource.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ public function call($function, ...$arguments)
4949
return $this->mta->callFunction($this->name, $function, $arguments);
5050
}
5151

52+
public function __call($name, $arguments)
53+
{
54+
return $this->call($name, $arguments);
55+
}
56+
5257
public function __toString()
5358
{
5459
return '^R^' . $this->name;

tests/Functional/MtaTest.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,26 @@ public function testItReturnsResponse(): void
4444
$this->assertEquals('someElementId', $return[2]->getId());
4545
}
4646

47+
public function testItReturnsResponseUsingDirectCall(): void
48+
{
49+
$client = new Client();
50+
$response = $this->createMock(ResponseInterface::class);
51+
$response->method('getBody')->willReturn('["^R^someResource","someString","^E^someElementId"]');
52+
$response->method('getStatusCode')->willReturn(200);
53+
$client->addResponse($response);
54+
$server = new Server('127.0.0.1', 22005);
55+
$credential = new Credential('someUser', 'somePassword');
56+
57+
$mta = new Mta($server, $credential, $client);
58+
$return = $mta->getResource('someCallableResource')->someCallableFunction();
59+
60+
$this->assertInstanceOf(Resource::class, $return[0]);
61+
$this->assertEquals('someResource', $return[0]->getName());
62+
$this->assertEquals('someString', $return[1]);
63+
$this->assertInstanceOf(Element::class, $return[2]);
64+
$this->assertEquals('someElementId', $return[2]->getId());
65+
}
66+
4767
public function testItPrintsSomeJson()
4868
{
4969
Mta::doReturn('someValue1', 'someValue2');

0 commit comments

Comments
 (0)