1: <?php
2:
3: /**
4: * XSLT Benchmarking
5: * @link https://github.com/masicek/XSLT-Benchmarking
6: * @author Viktor Mašíček <viktor@masicek.net>
7: * @license "New" BSD License
8: */
9:
10: namespace XSLTBenchmarking\TestsGenerator;
11:
12: /**
13: * Abstract parent for object for collect params about templates.
14: *
15: * @author Viktor Mašíček <viktor@masicek.net>
16: */
17: interface IParamsDriver
18: {
19:
20:
21: /**
22: * Choose the params driver by extension
23: *
24: * @param \XSLTBenchmarking\TestsGenerator\XmlGenerator $xmlGenerator Object for generating XML files
25: * @param string $tmpDirectoryPath The path of the temporary directory
26: * @param string $paramsFilePath The path of the file with deffinition of generated tests
27: *
28: * @throws \XSLTBenchmarking\InvalidArgumentException Wrong format of file with params
29: */
30: public function __construct(
31: \XSLTBenchmarking\TestsGenerator\XmlGenerator $xmlGenerator,
32: $tmpDirectoryPath,
33: $paramsFilePath
34: );
35:
36:
37: /**
38: * Return the name of tests collection
39: *
40: * @return string
41: */
42: public function getTemplateName();
43:
44:
45: /**
46: * Return the path to the template file
47: *
48: * @return string
49: */
50: public function getTemplatePath();
51:
52:
53: /**
54: * Return the type of templating
55: *
56: * @return string
57: */
58: public function getTemplatingType();
59:
60:
61: /**
62: * Return the list of tests names
63: *
64: * @return array
65: */
66: public function getTestsNames();
67:
68:
69: /**
70: * Return the list of input files paths
71: * and paths of their expected output files for selected test
72: *
73: * @param string $testName The name of the selected test
74: *
75: * @return array
76: */
77: public function getTestFilesPaths($testName);
78:
79:
80: /**
81: * Return the list of settings for the selected test
82: *
83: * @param string $testName The name of the selected test
84: *
85: * @return array
86: */
87: public function getTestSettings($testName);
88:
89:
90: /**
91: * Return the name of file with params of the test.
92: *
93: * @param string $testName The name of the selected test
94: *
95: * @return string|NULL
96: */
97: public function getTestParamsFileName($testName);
98:
99:
100: }
101: