/
MySQLStrategyIntegrationTest.php
52 lines (45 loc) · 1.61 KB
/
MySQLStrategyIntegrationTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
use PHPUnit\Framework\TestCase;
use FcPhp\Datasource\MySQL\Strategies\MySQLStrategy;
use FcPhp\Datasource\MySQL\Interfaces\IMySQLStrategy;
use FcPhp\Datasource\Interfaces\ICriteria;
use FcPhp\Datasource\Interfaces\IStrategy;
use FcPhp\Datasource\Interfaces\IFactory;
use FcPhp\Datasource\MySQL\Interfaces\Strategies\Select\ISelect;
use FcPhp\Di\Facades\DiFacade;
use FcPhp\Datasource\Factories\Factory;
use FcPhp\Datasource\MySQL\Factories\MySQLFactory;
class MySQLStrategyIntegrationTest extends TestCase
{
public function setUp()
{
$this->di = DiFacade::getInstance();
$this->strategies = [];
$this->criterias = [
'mysql' => 'FcPhp/Datasource/MySQL/Criterias/MySQLCriteria'
];
$this->methods = [
'select' => 'FcPhp\Datasource\MySQL\Strategies\Select\Select',
];
$this->criteria = 'mysql';
$this->factory = new Factory($this->strategies, $this->criterias, $this->di);
$this->mySQLFactory = new MySQLFactory($this->di, $this->methods);
$this->instance = new MySQLStrategy($this->criteria, $this->factory, $this->mySQLFactory);
}
public function testInstance()
{
$this->assertInstanceOf(IMySQLStrategy::class, $this->instance);
}
public function testCallMethod()
{
$select = $this->instance->select('t.field');
$this->assertInstanceOf(ISelect::class, $select);
}
/**
* @expectedException FcPhp\Datasource\MySQL\Exceptions\InvalidMethodException
*/
public function testJoinInvalid()
{
$join = $this->instance->methodtest('t.field');
}
}