summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php248
1 files changed, 248 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php
new file mode 100644
index 00000000..785db5b1
--- /dev/null
+++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Utils/UtilityFactory.php
@@ -0,0 +1,248 @@
+<?php
+
+namespace SMW\Tests\Utils;
+
+use Onoi\MessageReporter\SpyMessageReporter;
+use SMW\Tests\Utils\File\BulkFileProvider;
+use SMW\Tests\Utils\File\DummyFileCreator;
+use SMW\Tests\Utils\File\JsonFileReader;
+use SMW\Tests\Utils\File\LocalFileUpload;
+use SMW\Tests\Utils\Fixtures\FixturesFactory;
+use SMW\Tests\Utils\Page\PageEditor;
+use SMW\Tests\Utils\Runners\RunnerFactory;
+use SMW\Tests\Utils\Validators\ValidatorFactory;
+
+/**
+ * @license GNU GPL v2+
+ * @since 2.1
+ *
+ * @author mwjames
+ */
+class UtilityFactory {
+
+ /**
+ * @var UtilityFactory
+ */
+ private static $instance = null;
+
+ /**
+ * @since 2.1
+ *
+ * @return UtilityFactory
+ */
+ public static function getInstance() {
+
+ if ( self::$instance === null ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return MwApiFactory
+ */
+ public function newMwApiFactory() {
+ return new MwApiFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return ValidatorFactory
+ */
+ public function newValidatorFactory() {
+ return new ValidatorFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return StringBuilder
+ */
+ public function newStringBuilder() {
+ return new StringBuilder();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return MwHooksHandler
+ */
+ public function newMwHooksHandler() {
+ return new MwHooksHandler();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return ParserFactory
+ */
+ public function newParserFactory() {
+ return new ParserFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return FixturesFactory
+ */
+ public function newFixturesFactory() {
+ return new FixturesFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return SemanticDataFactory
+ */
+ public function newSemanticDataFactory() {
+ return new SemanticDataFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return RunnerFactory
+ */
+ public function newRunnerFactory() {
+ return new RunnerFactory();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return PageDeleter
+ */
+ public function newPageDeleter() {
+ return new PageDeleter();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return PageRefresher
+ */
+ public function newPageRefresher() {
+ return new PageRefresher();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return PageCreator
+ */
+ public function newPageCreator() {
+ return new PageCreator();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @return PageEditor
+ */
+ public function newPageEditor() {
+ return new PageEditor();
+ }
+
+ /**
+ * @since 2.2
+ *
+ * @return PageReader
+ */
+ public function newPageReader() {
+ return new PageReader();
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @param string $file|null
+ *
+ * @return JsonFileReader
+ */
+ public function newJsonFileReader( $file = null ) {
+ return new JsonFileReader( $file );
+ }
+
+ /**
+ * @since 2.1
+ *
+ * @param string $path
+ *
+ * @return BulkFileProvider
+ */
+ public function newBulkFileProvider( $path ) {
+ return new BulkFileProvider( $path );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @param string $localUploadPath
+ * @param $desiredDestName
+ *
+ * @return LocalFileUpload
+ */
+ public function newLocalFileUploadWithCopy( $localUploadPath, $desiredDestName ) {
+
+ // Use to create a copy to avoid having the original file being
+ // deleted after the upload
+ $dummyFileCreator = new DummyFileCreator();
+ $dummyFileCreator->createFileWithCopyFrom( $desiredDestName, $localUploadPath );
+
+ return new LocalFileUpload(
+ $dummyFileCreator->getPath(),
+ $desiredDestName
+ );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @return LocalFileUpload
+ */
+ public function newLocalFileUpload() {
+
+ $localFileUpload = new LocalFileUpload();
+
+ $localFileUpload->setDummyFileCreator(
+ new DummyFileCreator()
+ );
+
+ return $localFileUpload;
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @param $length
+ * @param $prefix identify a specific random string during testing
+ *
+ * @return string
+ */
+ public function createRandomString( $length = 10, $prefix = null ) {
+ return $prefix . ( $prefix ? '-' : '' ) . substr( str_shuffle( "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" ), 0, $length );
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @return SpyLogger
+ */
+ public function newSpyLogger() {
+ return new SpyLogger();
+ }
+
+ /**
+ * @since 2.5
+ *
+ * @return SpyMessageReporter
+ */
+ public function newSpyMessageReporter() {
+ return new SpyMessageReporter();
+ }
+
+}