1: <?php
2:
3: /**
4: * This file is part of expect package.
5: *
6: * (c) Noritaka Horio <holy.shared.design@gmail.com>
7: *
8: * This source file is subject to the MIT license that is bundled
9: * with this source code in the file LICENSE.
10: */
11: namespace expect;
12:
13: use expect\configurator\DefaultConfigurator;
14:
15: /**
16: * Expect
17: *
18: * @author Noritaka Horio <holy.shared.design@gmail.com>
19: * @copyright Noritaka Horio <holy.shared.design@gmail.com>
20: */
21: final class Expect implements Configurable
22: {
23: /**
24: * @var \expect\ContextFactory
25: */
26: private static $contextFactory;
27:
28: /**
29: * {@inheritdoc}
30: */
31: public static function configure(Configurator $configurator = null)
32: {
33: $useConfigurator = $configurator;
34:
35: if ($useConfigurator === null) {
36: $useConfigurator = new DefaultConfigurator();
37: }
38: self::$contextFactory = $useConfigurator->configure();
39: }
40:
41: /**
42: * @param mixed $actual
43: *
44: * @return Context
45: */
46: public static function that($actual)
47: {
48: $context = self::$contextFactory->newContext();
49:
50: return $context->actual($actual);
51: }
52: }
53: