diff --git a/RoboFile.php b/RoboFile.php
new file mode 100644
index 00000000..b63ee609
--- /dev/null
+++ b/RoboFile.php
@@ -0,0 +1,278 @@
+prepare();
+ $this->lint();
+ $this->phploc(TRUE);
+ $this->dependencyReport();
+ $this->phpcpdReport();
+ }
+
+ /**
+ * Run all tests, generate coverage, generate docs, generate code statistics
+ */
+ public function build()
+ {
+ $this->analyze();
+ $this->coverage();
+ $this->docs();
+ }
+
+ /**
+ * Cleanup temporary files
+ */
+ public function clean()
+ {
+ $cleanFiles = [
+ 'build/humbug.json',
+ 'build/humbug-log.txt',
+ ];
+ array_map(function ($file) {
+ @unlink($file);
+ }, $cleanFiles);
+
+ $this->_cleanDir($this->taskDirs);
+ $this->_deleteDir($this->taskDirs);
+ }
+
+ /**
+ * Run unit tests and generate coverage reports
+ */
+ public function coverage()
+ {
+ $this->taskPhpUnit()
+ ->configFile('build/phpunit.xml')
+ ->printed(true)
+ ->run();
+ }
+
+ /**
+ * Generate documentation with phpdox
+ */
+ public function docs()
+ {
+ $cmd_parts = [
+ 'cd build',
+ '../vendor/bin/phpdox',
+ 'cd ..'
+ ];
+ $this->_run($cmd_parts, ' && ');
+ }
+
+ /**
+ * Verify that source files are valid
+ */
+ public function lint()
+ {
+ $files = $this->getAllSourceFiles();
+
+ $chunks = array_chunk($files, 6);
+ $collection = $this->collection();
+
+ foreach($chunks as $chunk)
+ {
+ $this->parallelLint($collection, $chunk);
+ }
+
+ $collection->run();
+ }
+
+
+ /**
+ * Run mutation tests with humbug
+ *
+ * @param bool $stats - if true, generates stats rather than running mutation tests
+ */
+ public function mutate($stats = FALSE)
+ {
+ $test_parts = [
+ 'vendor/bin/humbug'
+ ];
+
+ $stat_parts = [
+ 'vendor/bin/humbug',
+ '--skip-killed=yes',
+ '-v',
+ './build/humbug.json'
+ ];
+
+ $cmd_parts = ($stats) ? $stat_parts : $test_parts;
+ $this->_run($cmd_parts);
+ }
+
+ /**
+ * Run the phploc tool
+ *
+ * @param bool $report - if true, generates reports instead of direct output
+ */
+ public function phploc($report = FALSE)
+ {
+ // Command for generating reports
+ $report_cmd_parts = [
+ 'vendor/bin/phploc',
+ '--log-csv=build/logs/phploc.csv',
+ '--log-xml=build/logs/phploc.xml',
+ 'src',
+ 'tests'
+ ];
+
+ // Command for generating direct output
+ $normal_cmd_parts = [
+ 'vendor/bin/phploc',
+ '--count-tests',
+ 'src',
+ 'tests'
+ ];
+
+ $cmd_parts = ($report) ? $report_cmd_parts : $normal_cmd_parts;
+
+ $this->_run($cmd_parts);
+ }
+
+ /**
+ * Create temporary directories
+ */
+ public function prepare()
+ {
+ $this->clean();
+ array_map([$this, '_mkdir'], $this->taskDirs);
+ }
+
+ /**
+ * Lint php files and run unit tests
+ */
+ public function test()
+ {
+ $this->lint();
+ $this->taskPHPUnit()
+ ->configFile('phpunit.xml')
+ ->printed(true)
+ ->run();
+ }
+
+ /**
+ * Watches for file updates, and automatically runs appropriate actions
+ */
+ public function watch()
+ {
+ $this->taskWatch()
+ ->monitor('composer.json', function() {
+ $this->taskComposerUpdate()->run();
+ })
+ ->monitor('src', function () {
+ $this->taskExec('test')->run();
+ })->run();
+ }
+
+ /**
+ * Create pdepend reports
+ */
+ protected function dependencyReport()
+ {
+ $cmd_parts = [
+ 'vendor/bin/pdepend',
+ '--jdepend-xml=build/logs/jdepend.xml',
+ '--jdepend-chart=build/pdepend/dependencies.svg',
+ '--overview-pyramid=build/pdepend/overview-pyramid.svg',
+ 'src'
+ ];
+ $this->_run($cmd_parts);
+ }
+
+ /**
+ * Get the total list of source files, including tests
+ *
+ * @return array
+ */
+ protected function getAllSourceFiles()
+ {
+ $files = array_merge(
+ glob_recursive('build/*.php'),
+ glob_recursive('src/*.php'),
+ glob_recursive('tests/*.php'),
+ glob('*.php')
+ );
+
+ sort($files);
+
+ return $files;
+ }
+
+ /**
+ * Run php's linter in one parallel task for the passed chunk
+ *
+ * @param Collection $collection
+ * @param array $chunk
+ */
+ protected function parallelLint($collection, array $chunk)
+ {
+ $task = $this->taskParallelExec();
+
+ foreach($chunk as $file)
+ {
+ $task = $task->process("php -l {$file}");
+ }
+
+ $collection->add($task);
+ }
+
+ /**
+ * Generate copy paste detector report
+ */
+ protected function phpcpdReport()
+ {
+ $cmd_parts = [
+ 'vendor/bin/phpcpd',
+ '--log-pmd build/logs/pmd-cpd.xml',
+ 'src'
+ ];
+ $this->_run($cmd_parts);
+ }
+
+ /**
+ * Short cut for joining an array of command arguments
+ * and then running it
+ *
+ * @param array $cmd_parts - command arguments
+ * @param string $join_on - what to join the command arguments with
+ */
+ protected function _run(array $cmd_parts, $join_on = ' ')
+ {
+ $this->_exec(implode($join_on, $cmd_parts));
+ }
+}
\ No newline at end of file
diff --git a/build/ion_header_comment.txt b/build/ion_header_comment.txt
deleted file mode 100644
index 50a30257..00000000
--- a/build/ion_header_comment.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Ion
- *
- * Building blocks for web development
- *
- * @package Ion
- * @author Timothy J. Warren
- * @copyright Copyright (c) 2015 - 2016
- * @license MIT
- */
\ No newline at end of file
diff --git a/build/phpunit.xml b/build/phpunit.xml
index 3c63f182..0b605295 100644
--- a/build/phpunit.xml
+++ b/build/phpunit.xml
@@ -8,14 +8,10 @@
>
- ../src/Aviat/Ion
../src/Aviat/AnimeClient
-
- ../tests/Ion
-
../tests/AnimeClient
diff --git a/build/update_header_comments.php b/build/update_header_comments.php
index 852cf635..a7423f3b 100644
--- a/build/update_header_comments.php
+++ b/build/update_header_comments.php
@@ -7,10 +7,6 @@ $animeclient_file_patterns = [
'src/Aviat/AnimeClient/*.php'
];
-$ion_file_patterns = [
- 'src/Aviat/Ion/*.php'
-];
-
if ( ! function_exists('glob_recursive'))
{
// Does not support flag GLOB_BRACE
@@ -80,10 +76,4 @@ $loose_files = [
];
replace_files($loose_files, '/animeclient_header_comment.txt');
-foreach ($ion_file_patterns as $glob)
-{
- $files = glob_recursive($glob);
- replace_files($files, '/ion_header_comment.txt');
-}
-
echo "Successfully updated headers \n";
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 0a7b0777..f769e115 100644
--- a/composer.json
+++ b/composer.json
@@ -7,13 +7,10 @@
"aura/html": "2.*",
"aura/router": "3.*",
"aura/session": "2.*",
- "aviat4ion/query": "2.5.*",
- "container-interop/container-interop": "1.*",
- "danielstjules/stringy": "~2.1",
+ "aviat/ion": "dev-master",
"filp/whoops": "2.0.*",
"guzzlehttp/guzzle": "6.*",
"monolog/monolog": "1.*",
- "predis/predis": "1.1.*",
"psr/http-message": "~1.0",
"psr/log": "~1.0",
"yosymfony/toml": "0.3.*",
@@ -21,7 +18,6 @@
"maximebf/consolekit": "^1.0"
},
"require-dev": {
- "codeclimate/php-test-reporter": "dev-master",
"pdepend/pdepend": "^2.2",
"sebastian/phpcpd": "^2.0",
"theseer/phpdox": "0.8.1.1",
@@ -29,6 +25,8 @@
"phpmd/phpmd": "^2.4",
"phpunit/phpunit": "^5.4",
"robmorgan/phinx": "^0.6.4",
- "humbug/humbug": "~1.0@dev"
+ "humbug/humbug": "~1.0@dev",
+ "consolidation/robo": "~1.0@dev",
+ "henrikbjorn/lurker": "^1.1.0"
}
}
diff --git a/phpunit.xml b/phpunit.xml
index 6f5df955..18ac4012 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -7,14 +7,10 @@
>
- src/Aviat/Ion
src/Aviat/AnimeClient
-
- tests/Ion
-
tests/AnimeClient
diff --git a/src/Aviat/Ion/ArrayWrapper.php b/src/Aviat/Ion/ArrayWrapper.php
deleted file mode 100644
index 74ec7da4..00000000
--- a/src/Aviat/Ion/ArrayWrapper.php
+++ /dev/null
@@ -1,34 +0,0 @@
-get('cache_driver');
-
- if (empty($driverConf))
- {
- $driverConf = 'NullDriver';
- }
-
- $driverClass = __NAMESPACE__ . "\\Driver\\{$driverConf}";
- $driver = new $driverClass($config);
-
- $this->driver = $driver;
- }
-
- /**
- * Retrieve a cached value if it exists, otherwise, get the value
- * from the passed arguments
- *
- * @param object $object - object to retrieve fresh value from
- * @param string $method - method name to call
- * @param [array] $args - the arguments to pass to the retrieval method
- * @return mixed - the cached or fresh data
- */
- public function get($object, $method, array $args=[])
- {
- $hash = $this->generateHashForMethod($object, $method, $args);
-
- $data = $this->driver->get($hash);
-
- if (empty($data))
- {
- $data = call_user_func_array([$object, $method], $args);
- $this->driver->set($hash, $data);
- }
-
- return $data;
- }
-
- /**
- * Retrieve a fresh value from the method, and update the cache
- * @param object $object - object to retrieve fresh value from
- * @param string $method - method name to call
- * @param [array] $args - the arguments to pass to the retrieval method
- * @return mixed - the fresh data
- */
- public function getFresh($object, $method, array $args=[])
- {
- $hash = $this->generateHashForMethod($object, $method, $args);
- $data = call_user_func_array([$object, $method], $args);
- $this->driver->set($hash, $data);
- return $data;
- }
-
- /**
- * Clear the entire cache
- *
- * @return void
- */
- public function purge()
- {
- $this->driver->invalidateAll();
- }
-
- /**
- * Generate a hash as a cache key from the current method call
- *
- * @param object $object
- * @param string $method
- * @param array $args
- * @return string
- */
- protected function generateHashForMethod($object, $method, array $args)
- {
- $classname = get_class($object);
- $keyObj = [
- 'class' => $classname,
- 'method' => $method,
- 'args' => $args,
- ];
- $hash = sha1(json_encode($keyObj));
- return $hash;
- }
-}
-// End of CacheManager.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Cache/Driver/DriverInterface.php b/src/Aviat/Ion/Cache/Driver/DriverInterface.php
deleted file mode 100644
index 2f826c21..00000000
--- a/src/Aviat/Ion/Cache/Driver/DriverInterface.php
+++ /dev/null
@@ -1,51 +0,0 @@
-data))
- ? $this->data[$key]
- : NULL;
- }
-
- /**
- * Set a cached value
- *
- * @param string $key
- * @param mixed $value
- * @return DriverInterface
- */
- public function set($key, $value)
- {
- $this->data[$key] = $value;
- return $this;
- }
-
- /**
- * Invalidate a cached value
- *
- * @param string $key
- * @return DriverInterface
- */
- public function invalidate($key)
- {
- unset($this->data[$key]);
- return $this;
- }
-
- /**
- * Clear the contents of the cache
- *
- * @return void
- */
- public function invalidateAll()
- {
- $this->data = [];
- }
-}
-// End of NullDriver.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Cache/Driver/RedisDriver.php b/src/Aviat/Ion/Cache/Driver/RedisDriver.php
deleted file mode 100644
index dc385aa3..00000000
--- a/src/Aviat/Ion/Cache/Driver/RedisDriver.php
+++ /dev/null
@@ -1,117 +0,0 @@
-get('redis');
-
- // If you don't have a redis password set, and you attempt to send an
- // empty string, Redis will think you want to authenticate with a password
- // that is an empty string. To work around this, empty string passwords
- // are considered to be a lack of a password
- if (array_key_exists('password', $redisConfig) && $redisConfig['password'] === '')
- {
- unset($redisConfig['password']);
- }
-
- $this->redis = new Client($redisConfig);
- }
-
- /**
- * Disconnect from redis
- */
- public function __destruct()
- {
- $this->redis = null;
- }
-
- /**
- * Retrieve a value from the cache backend
- *
- * @param string $rawKey
- * @return mixed
- */
- public function get($rawKey)
- {
- $key = $this->prefix($rawKey);
- $serializedData = $this->redis->get($key);
-
- return $this->unserialize($serializedData);
- }
-
- /**
- * Set a cached value
- *
- * @param string $rawKey
- * @param mixed $value
- * @return DriverInterface
- */
- public function set($rawKey, $value)
- {
- $key = $this->prefix($rawKey);
- $serializedData = $this->serialize($value);
-
- $this->redis->set($key, $serializedData);
-
- return $this;
- }
-
- /**
- * Invalidate a cached value
- *
- * @param string $rawKey
- * @return DriverInterface
- */
- public function invalidate($rawKey)
- {
- $key = $this->prefix($rawKey);
- $this->redis->del($key);
-
- return $this;
- }
-
- /**
- * Clear the contents of the cache
- *
- * @return void
- */
- public function invalidateAll()
- {
- $this->redis->flushdb();
- }
-}
-// End of RedisDriver.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Cache/Driver/SQLDriver.php b/src/Aviat/Ion/Cache/Driver/SQLDriver.php
deleted file mode 100644
index 703128ec..00000000
--- a/src/Aviat/Ion/Cache/Driver/SQLDriver.php
+++ /dev/null
@@ -1,119 +0,0 @@
-db_config))
- {
- throw new ConfigException("Missing '[cache]' section in database config.");
- }
-
- $this->db = \Query($this->db_config['cache']);
- }
-
- /**
- * Retrieve a value from the cache backend
- *
- * @param string $key
- * @return mixed
- */
- public function get($key)
- {
- $query = $this->db->select('value')
- ->from('cache')
- ->where('key', $key)
- ->get();
-
- $row = $query->fetch(\PDO::FETCH_ASSOC);
-
- if (empty($row))
- {
- return NULL;
- }
-
- $serializedData = $row['value'];
- return $this->unserialize($serializedData);
- }
-
- /**
- * Set a cached value
- *
- * @param string $key
- * @param mixed $value
- * @return DriverInterface
- */
- public function set($key, $value)
- {
- $serializedData = $this->serialize($value);
-
- $this->db->set([
- 'key' => $key,
- 'value' => $serializedData,
- ]);
-
- $this->db->insert('cache');
-
- return $this;
- }
-
- /**
- * Invalidate a cached value
- *
- * @param string $key
- * @return DriverInterface
- */
- public function invalidate($key)
- {
- $this->db->where('key', $key)
- ->delete('cache');
-
- return $this;
- }
-
- /**
- * Clear the contents of the cache
- *
- * @return void
- */
- public function invalidateAll()
- {
- $this->db->truncate('cache');
- }
-}
-// End of SQLDriver.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Config.php b/src/Aviat/Ion/Config.php
deleted file mode 100644
index c0dea9f0..00000000
--- a/src/Aviat/Ion/Config.php
+++ /dev/null
@@ -1,106 +0,0 @@
-map = $this->arr($config_array);
- }
-
- /**
- * Get a config value
- *
- * @param array|string $key
- * @return mixed
- * @throws ConfigException
- */
- public function get($key)
- {
- if (is_array($key))
- {
- return $this->map->get_deep_key($key);
- }
-
- return $this->map->get($key);
- }
-
- /**
- * Remove a config value
- *
- * @param string|array $key
- * @return void
- */
- public function delete($key)
- {
- if (is_array($key))
- {
- $this->map->set_deep_key($key, NULL);
- }
- else
- {
- $pos =& $this->map->get($key);
- $pos = NULL;
- }
- }
-
- /**
- * Set a config value
- *
- * @param integer|string|array $key
- * @param mixed $value
- * @throws InvalidArgumentException
- * @return Config
- */
- public function set($key, $value)
- {
- if (is_array($key))
- {
- $this->map->set_deep_key($key, $value);
- }
- else if (is_scalar($key) && ! empty($key))
- {
- $this->map->set($key, $value);
- }
- else
- {
- throw new InvalidArgumentException("Key must be integer, string, or array, and cannot be empty");
- }
-
- return $this;
- }
-}
-// End of config.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/ConfigInterface.php b/src/Aviat/Ion/ConfigInterface.php
deleted file mode 100644
index 9c644bae..00000000
--- a/src/Aviat/Ion/ConfigInterface.php
+++ /dev/null
@@ -1,41 +0,0 @@
-container = $values;
- $this->loggers = [];
- }
-
- /**
- * Finds an entry of the container by its identifier and returns it.
- *
- * @param string $id Identifier of the entry to look for.
- *
- * @throws NotFoundException No entry was found for this identifier.
- * @throws ContainerException Error while retrieving the entry.
- *
- * @return mixed Entry.
- */
- public function get($id)
- {
- if ( ! is_string($id))
- {
- throw new Exception\ContainerException("Id must be a string");
- }
-
- if ($this->has($id))
- {
- return $this->container[$id];
- }
-
- throw new Exception\NotFoundException("Item '{$id}' does not exist in container.");
- }
-
- /**
- * Add a value to the container
- *
- * @param string $id
- * @param mixed $value
- * @return ContainerInterface
- */
- public function set($id, $value)
- {
- $this->container[$id] = $value;
- return $this;
- }
-
- /**
- * Returns true if the container can return an entry for the given identifier.
- * Returns false otherwise.
- *
- * @param string $id Identifier of the entry to look for.
- *
- * @return boolean
- */
- public function has($id)
- {
- return array_key_exists($id, $this->container);
- }
-
- /**
- * Determine whether a logger channel is registered
- * @param string $key The logger channel
- * @return boolean
- */
- public function hasLogger($key = 'default')
- {
- return array_key_exists($key, $this->loggers);
- }
-
- /**
- * Add a logger to the Container
- *
- * @param LoggerInterface $logger
- * @param string $key The logger 'channel'
- * @return ContainerInterface
- */
- public function setLogger(LoggerInterface $logger, $key = 'default')
- {
- $this->loggers[$key] = $logger;
- return $this;
- }
-
- /**
- * Retrieve a logger for the selected channel
- *
- * @param string $key The logger to retreive
- * @return LoggerInterface|null
- */
- public function getLogger($key = 'default')
- {
- return ($this->hasLogger($key))
- ? $this->loggers[$key]
- : NULL;
- }
-}
-// End of Container.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Di/ContainerAware.php b/src/Aviat/Ion/Di/ContainerAware.php
deleted file mode 100644
index 8aaf0168..00000000
--- a/src/Aviat/Ion/Di/ContainerAware.php
+++ /dev/null
@@ -1,49 +0,0 @@
-container = $container;
- return $this;
- }
-
- /**
- * Get the container object
- *
- * @return ContainerInterface
- */
- public function getContainer()
- {
- return $this->container;
- }
-}
-// End of ContainerAware.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Di/ContainerAwareInterface.php b/src/Aviat/Ion/Di/ContainerAwareInterface.php
deleted file mode 100644
index 64de7b6b..00000000
--- a/src/Aviat/Ion/Di/ContainerAwareInterface.php
+++ /dev/null
@@ -1,36 +0,0 @@
-getConstants();
- }
-
- /**
- * Verify that a constant value is valid
- * @param mixed $key
- * @return boolean
- */
- protected function isValid($key)
- {
- $values = array_values($this->getConstList());
- return in_array($key, $values);
- }
-}
-// End of Enum.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Exception/ConfigException.php b/src/Aviat/Ion/Exception/ConfigException.php
deleted file mode 100644
index ea1d21c3..00000000
--- a/src/Aviat/Ion/Exception/ConfigException.php
+++ /dev/null
@@ -1,20 +0,0 @@
-_friend_ = $obj;
- $this->_reflect_ = new ReflectionClass($obj);
- }
-
- /**
- * Retrieve a friend's property
- *
- * @param string $key
- * @return mixed
- */
- public function __get($key)
- {
- if ($this->_reflect_->hasProperty($key))
- {
- $property = $this->_get_property($key);
- return $property->getValue($this->_friend_);
- }
-
- return NULL;
- }
-
- /**
- * Set a friend's property
- *
- * @param string $key
- * @param mixed $value
- * @return void
- */
- public function __set($key, $value)
- {
- if ($this->_reflect_->hasProperty($key))
- {
- $property = $this->_get_property($key);
- $property->setValue($this->_friend_, $value);
- }
- }
-
- /**
- * Calls a protected or private method on the friend
- *
- * @param string $method
- * @param array $args
- * @return mixed
- */
- public function __call($method, $args)
- {
- if ( ! $this->_reflect_->hasMethod($method))
- {
- throw new BadMethodCallException("Method '{$method}' does not exist");
- }
-
- $friendMethod = new ReflectionMethod($this->_friend_, $method);
- $friendMethod->setAccessible(TRUE);
- return $friendMethod->invokeArgs($this->_friend_, $args);
- }
-
- /**
- * Iterates over parent classes to get a ReflectionProperty
- *
- * @codeCoverageIgnore
- * @param string $name
- * @return ReflectionProperty|null
- */
- private function _get_property($name)
- {
- try
- {
- $property = $this->_reflect_->getProperty($name);
- $property->setAccessible(TRUE);
- return $property;
- }
- // Return NULL on any exception, so no further logic needed
- // in the catch block
- catch (\Exception $e)
- {
- return NULL;
- }
- }
-}
-// End of Friend.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Json.php b/src/Aviat/Ion/Json.php
deleted file mode 100644
index b1581ecc..00000000
--- a/src/Aviat/Ion/Json.php
+++ /dev/null
@@ -1,130 +0,0 @@
-isJson();
- }
-
- /**
- * Call the json error functions to check for errors encoding/decoding
- *
- * @throws JsonException
- */
- protected static function check_json_error()
- {
- $constant_map = [
- JSON_ERROR_NONE => 'JSON_ERROR_NONE',
- JSON_ERROR_DEPTH => 'JSON_ERROR_DEPTH',
- JSON_ERROR_STATE_MISMATCH => 'JSON_ERROR_STATE_MISMATCH',
- JSON_ERROR_CTRL_CHAR => 'JSON_ERROR_CTRL_CHAR',
- JSON_ERROR_SYNTAX => 'JSON_ERROR_SYNTAX',
- JSON_ERROR_UTF8 => 'JSON_ERROR_UTF8',
- JSON_ERROR_RECURSION => 'JSON_ERROR_RECURSION',
- JSON_ERROR_INF_OR_NAN => 'JSON_ERROR_INF_OR_NAN',
- JSON_ERROR_UNSUPPORTED_TYPE => 'JSON_ERROR_UNSUPPORTED_TYPE'
- ];
-
- $error = json_last_error();
- $message = json_last_error_msg();
-
- if (\JSON_ERROR_NONE !== $error)
- {
- throw new JsonException("{$constant_map[$error]} - {$message}", $error);
- }
- }
-}
-// End of JSON.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/JsonException.php b/src/Aviat/Ion/JsonException.php
deleted file mode 100644
index 5be77c4f..00000000
--- a/src/Aviat/Ion/JsonException.php
+++ /dev/null
@@ -1,18 +0,0 @@
-config = $config;
- $this->db_config = (array)$config->get('database');
- }
-}
-// End of DB.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/StaticInstance.php b/src/Aviat/Ion/StaticInstance.php
deleted file mode 100644
index 7a67b931..00000000
--- a/src/Aviat/Ion/StaticInstance.php
+++ /dev/null
@@ -1,63 +0,0 @@
- 'array_chunk',
- 'pluck' => 'array_column',
- 'key_diff' => 'array_diff_key',
- 'diff' => 'array_diff',
- 'filter' => 'array_filter',
- 'flip' => 'array_flip',
- 'intersect' => 'array_intersect',
- 'keys' => 'array_keys',
- 'merge' => 'array_merge',
- 'pad' => 'array_pad',
- 'product' => 'array_product',
- 'random' => 'array_rand',
- 'reduce' => 'array_reduce',
- 'reverse' => 'array_reverse',
- 'sum' => 'array_sum',
- 'unique' => 'array_unique',
- 'values' => 'array_values',
- ];
-
- /**
- * Native methods that modify the passed in array
- *
- * @var array
- */
- protected $native_in_place_methods = [
- 'shuffle' => 'shuffle',
- 'shift' => 'array_shift',
- 'unshift' => 'array_unshift',
- 'push' => 'array_push',
- 'pop' => 'array_pop',
- ];
-
- /**
- * Create an ArrayType wrapper class
- *
- * @param array $arr
- */
- public function __construct(array &$arr)
- {
- $this->arr =& $arr;
- }
-
- /**
- * Call one of the dynamically created methods
- *
- * @param string $method
- * @param array $args
- * @return mixed
- * @throws \InvalidArgumentException
- */
- public function __call($method, $args)
- {
- // Simple mapping for the majority of methods
- if (array_key_exists($method, $this->native_methods))
- {
- $func = $this->native_methods[$method];
- // Set the current array as the first argument of the method
- array_unshift($args, $this->arr);
- return call_user_func_array($func, $args);
- }
-
- // Mapping for in-place methods
- if (array_key_exists($method, $this->native_in_place_methods))
- {
- $func = $this->native_in_place_methods[$method];
- $func($this->arr);
- return $this->arr;
- }
-
- throw new \InvalidArgumentException("Method '{$method}' does not exist");
- }
-
- /**
- * Does the passed key exist in the current array?
- *
- * @param string $key
- * @return bool
- */
- public function has_key($key)
- {
- return array_key_exists($key, $this->arr);
- }
-
- /**
- * Fill an array with the specified value
- *
- * @param int $start_index
- * @param int $num
- * @param mixed $value
- * @return array
- */
- public function fill($start_index, $num, $value)
- {
- return array_fill($start_index, $num, $value);
- }
-
- /**
- * Call a callback on each item of the array
- *
- * @param callable $callback
- * @return array
- */
- public function map(callable $callback)
- {
- return array_map($callback, $this->arr);
- }
-
- /**
- * Find an array key by its associated value
- *
- * @param mixed $value
- * @param bool $strict
- * @return false|integer|string
- */
- public function search($value, $strict = FALSE)
- {
- return array_search($value, $this->arr, $strict);
- }
-
- /**
- * Determine if the array has the passed value
- *
- * @param mixed $value
- * @param bool $strict
- * @return bool
- */
- public function has($value, $strict = FALSE)
- {
- return in_array($value, $this->arr, $strict);
- }
-
- /**
- * Return the array, or a key
- *
- * @param string|integer|null $key
- * @return mixed
- */
- public function &get($key = NULL)
- {
- $value = NULL;
- if (is_null($key))
- {
- $value =& $this->arr;
- }
- else
- {
- if ($this->has_key($key))
- {
- $value =& $this->arr[$key];
- }
- }
-
- return $value;
- }
-
- /**
- * Set a key on the array
- *
- * @param mixed $key
- * @param mixed $value
- * @return ArrayType
- */
- public function set($key, $value)
- {
- $this->arr[$key] = $value;
- return $this;
- }
-
- /**
- * Return a reference to the value of an arbitrary key on the array
- *
- * @param array $key
- * @return mixed
- */
- public function &get_deep_key(array $key)
- {
- $pos =& $this->arr;
-
- foreach ($key as $level)
- {
- if (empty($pos) || ! is_array($pos))
- {
- // Directly returning a NULL value here will
- // result in a reference error. This isn't
- // excess code, just what's required for this
- // unique situation.
- $pos = NULL;
- return $pos;
- }
- $pos =& $pos[$level];
- }
-
- return $pos;
- }
-
- /**
- * Sets the value of an arbitrarily deep key in the array
- * and returns the modified array
- *
- * @param array $key
- * @param mixed $value
- * @return array
- */
- public function set_deep_key(array $key, $value)
- {
- $pos =& $this->arr;
-
- // Iterate through the levels of the array,
- // create the levels if they don't exist
- foreach ($key as $level)
- {
- if ( ! is_array($pos) && empty($pos))
- {
- $pos = [];
- $pos[$level] = [];
- }
- $pos =& $pos[$level];
- }
-
- $pos = $value;
-
- return $this->arr;
- }
-}
-// End of ArrayType.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/Type/StringType.php b/src/Aviat/Ion/Type/StringType.php
deleted file mode 100644
index 02c8cd81..00000000
--- a/src/Aviat/Ion/Type/StringType.php
+++ /dev/null
@@ -1,23 +0,0 @@
-setContainer($container);
- $this->response = $container->get('response');
- $this->redirectResponse = NULL;
- }
-
- /**
- * Send output to client
- */
- public function __destruct()
- {
- if ( ! $this->hasRendered)
- {
- $this->send();
- }
- }
-
- /**
- * Return rendered output
- *
- * @return string
- */
- public function __toString()
- {
- $this->hasRendered = TRUE;
- return $this->getOutput();
- }
-
- /**
- * Set the output string
- *
- * @param string $string
- * @return View
- */
- public function setOutput($string)
- {
- $this->response->getBody()->write($string);
-
- return $this;
- }
-
- /**
- * Append additional output
- *
- * @param string $string
- * @return View
- */
- public function appendOutput($string)
- {
- return $this->setOutput($string);
- }
-
- /**
- * Get the current output string
- *
- * @return string
- */
- public function getOutput()
- {
- return $this->response->getBody()->__toString();
- }
-
- /**
- * Send output to client
- *
- * @return void
- */
- abstract public function send();
-}
-// End of View.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/View/HtmlView.php b/src/Aviat/Ion/View/HtmlView.php
deleted file mode 100644
index d73cad04..00000000
--- a/src/Aviat/Ion/View/HtmlView.php
+++ /dev/null
@@ -1,69 +0,0 @@
-helper = $container->get('html-helper');
- }
-
- /**
- * Response mime type
- *
- * @var string
- */
- protected $contentType = 'text/html';
-
- /**
- * Render a basic html Template
- *
- * @param string $path
- * @param array $data
- * @return string
- */
- public function render_template($path, $data)
- {
- $data['helper'] = $this->helper;
- $data['escape'] = $this->helper->escape();
- $data['container'] = $this->container;
-
- ob_start();
- extract($data);
- include_once $path;
- $buffer = ob_get_contents();
- ob_end_clean();
-
- return $buffer;
- }
-}
-// End of HtmlView.php
\ No newline at end of file
diff --git a/src/Aviat/Ion/View/HttpView.php b/src/Aviat/Ion/View/HttpView.php
deleted file mode 100644
index 7ff97f01..00000000
--- a/src/Aviat/Ion/View/HttpView.php
+++ /dev/null
@@ -1,91 +0,0 @@
-response->getReasonPhrase($code);
- $this->setStatusCode($code);
- $this->response->withHeader('Location', $url);
-
- if (PHP_SAPI !== 'cli')
- {
- header("HTTP/1.1 ${code} ${message}");
- header("Location: {$url}");
- }
-
- $this->hasRendered = TRUE;
- ob_end_clean();
- }
-
- /**
- * Set the status code of the request
- *
- * @param int $code
- * @return HttpView
- */
- public function setStatusCode($code)
- {
- $this->response = $this->response->withStatus($code)
- ->withProtocolVersion('1.1');
- return $this;
- }
-
- /**
- * Send output to client
- *
- * @return void
- */
- public function send()
- {
- $this->hasRendered = TRUE;
- $this->output();
- }
-
- /**
- * Send the appropriate response
- *
- * @codeCoverageIgnore
- * @return void
- */
- protected function output()
- {
- $this->response->withHeader('Content-type', "{$this->contentType};charset=utf-8")
- ->withHeader('Content-Security-Policy', "script-src 'self'")
- ->withHeader('X-Content-Type-Options', 'nosniff')
- ->withHeader('X-XSS-Protection', '1;mode=block')
- ->withHeader('X-Frame-Options', 'SAMEORIGIN');
-
- $sender = new SapiEmitter($this->response);
- $sender->emit($this->response);
- }
-
-}
\ No newline at end of file
diff --git a/src/Aviat/Ion/View/JsonView.php b/src/Aviat/Ion/View/JsonView.php
deleted file mode 100644
index a65dd558..00000000
--- a/src/Aviat/Ion/View/JsonView.php
+++ /dev/null
@@ -1,47 +0,0 @@
-assertTrue(is_object($baseModel));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/CacheManagerTest.php b/tests/Ion/Cache/CacheManagerTest.php
deleted file mode 100644
index 7d88dcc1..00000000
--- a/tests/Ion/Cache/CacheManagerTest.php
+++ /dev/null
@@ -1,40 +0,0 @@
-cache = new CacheManager($this->container->get('config'), $this->container);
- $this->friend = new Friend($this->cache);
- }
-
- public function testGet()
- {
- $this->cachedTime = $this->cache->get($this, 'time');
- $this->assertEquals($this->cache->get($this, 'time'), $this->cachedTime);
- }
-
- public function testGetFresh()
- {
- $this->assertNotEquals($this->cache->getFresh($this, 'time'), $this->cachedTime);
- }
-
- public function testPurge()
- {
- $this->cachedTime = $this->cache->get($this, 'time');
- $key = $this->friend->generateHashForMethod($this, 'time', []);
- $this->cache->purge();
- $this->assertEmpty($this->friend->driver->get($key));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/Driver/CacheDriverBase.php b/tests/Ion/Cache/Driver/CacheDriverBase.php
deleted file mode 100644
index d1e333aa..00000000
--- a/tests/Ion/Cache/Driver/CacheDriverBase.php
+++ /dev/null
@@ -1,43 +0,0 @@
- [
- 'baz' => 'foobar'
- ]
- ];
-
- protected $bar = 'secondvalue';
-
- public function testHasCacheDriver()
- {
- $this->assertTrue((bool) $this->driver);
- }
-
- public function testDriverGetSet()
- {
- $this->driver->set('foo', $this->foo);
- $this->driver->set('bar', 'baz');
- $this->assertEquals($this->driver->get('foo'), $this->foo);
- $this->assertEquals($this->driver->get('bar'), 'baz');
- }
-
- public function testInvalidate()
- {
- $this->driver->set('foo', $this->foo);
- $this->driver->invalidate('foo');
- $this->assertEmpty($this->driver->get('foo'));
- }
-
- public function testInvalidateAll()
- {
- $this->driver->set('foo', $this->foo);
- $this->driver->set('bar', $this->bar);
-
- $this->driver->invalidateAll();
-
- $this->assertEmpty($this->driver->get('foo'));
- $this->assertEmpty($this->driver->get('bar'));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/Driver/NullDriverTest.php b/tests/Ion/Cache/Driver/NullDriverTest.php
deleted file mode 100644
index df6606d4..00000000
--- a/tests/Ion/Cache/Driver/NullDriverTest.php
+++ /dev/null
@@ -1,17 +0,0 @@
-driver = new NullDriver($this->container->get('config'));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/Driver/RedisDriver2Test.php b/tests/Ion/Cache/Driver/RedisDriver2Test.php
deleted file mode 100644
index 62f5482d..00000000
--- a/tests/Ion/Cache/Driver/RedisDriver2Test.php
+++ /dev/null
@@ -1,38 +0,0 @@
- [
- 'host' => (array_key_exists('REDIS_HOST', $_ENV)) ? $_ENV['REDIS_HOST'] : 'localhost',
- 'port' => 6379,
- 'password' => '',
- 'database' => 13,
- ]
- ]);
- $this->driver = new RedisDriver($config);
- }
-
- public function tearDown()
- {
- parent::tearDown();
-
- if ( ! is_null($this->driver))
- {
- $this->driver->__destruct();
- }
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/Driver/RedisDriverTest.php b/tests/Ion/Cache/Driver/RedisDriverTest.php
deleted file mode 100644
index ed1209f5..00000000
--- a/tests/Ion/Cache/Driver/RedisDriverTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-driver = new RedisDriver($this->container->get('config'));
- }
-
- public function tearDown()
- {
- parent::tearDown();
-
- if ( ! is_null($this->driver))
- {
- $this->driver->__destruct();
- }
-
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Cache/Driver/SQLDriverTest.php b/tests/Ion/Cache/Driver/SQLDriverTest.php
deleted file mode 100644
index 4cd98659..00000000
--- a/tests/Ion/Cache/Driver/SQLDriverTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-driver = new SQLDriver($this->container->get('config'));
- $friend = new Friend($this->driver);
- $friend->db->query('CREATE TABLE IF NOT EXISTS "cache" ("key" TEXT NULL, "value" TEXT NULL, PRIMARY KEY ("key"))');
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/ConfigTest.php b/tests/Ion/ConfigTest.php
deleted file mode 100644
index ca716cf8..00000000
--- a/tests/Ion/ConfigTest.php
+++ /dev/null
@@ -1,120 +0,0 @@
-config = new Config([
- 'foo' => 'bar',
- 'asset_path' => '/assets',
- 'bar' => 'baz'
- ]);
- }
-
- public function testConfigGet()
- {
- $this->assertEquals('bar', $this->config->get('foo'));
- $this->assertEquals('baz', $this->config->get('bar'));
- $this->assertNull($this->config->get('baz'));
- $this->assertNull($this->config->get(['apple', 'sauce', 'is']));
- }
-
- public function testConfigSet()
- {
- $ret = $this->config->set('foo', 'foobar');
- $this->assertInstanceOf('Aviat\Ion\Config', $ret);
- $this->assertEquals('foobar', $this->config->get('foo'));
-
- $this->config->set(['apple', 'sauce', 'is'], 'great');
- $apple = $this->config->get('apple');
- $this->assertEquals('great', $apple['sauce']['is'], "Config value not set correctly");
-
- $this->assertEquals('great', $this->config->get(['apple', 'sauce', 'is']), "Array argument get for config failed.");
-
- }
-
- public function testConfigBadSet()
- {
- $this->setExpectedException('InvalidArgumentException');
- $this->config->set(NULL, FALSE);
- }
-
- public function dataConfigDelete()
- {
- return [
- 'top level delete' => [
- 'key' => 'apple',
- 'assertKeys' => [
- [
- 'path' => ['apple', 'sauce', 'is'],
- 'expected' => NULL
- ],
- [
- 'path' => ['apple', 'sauce'],
- 'expected' => NULL
- ],
- [
- 'path' => 'apple',
- 'expected' => NULL
- ]
- ]
- ],
- 'mid level delete' => [
- 'key' => ['apple', 'sauce'],
- 'assertKeys' => [
- [
- 'path' => ['apple', 'sauce', 'is'],
- 'expected' => NULL
- ],
- [
- 'path' => ['apple', 'sauce'],
- 'expected' => NULL
- ],
- [
- 'path' => 'apple',
- 'expected' => [
- 'sauce' => NULL
- ]
- ]
- ]
- ],
- 'deep delete' => [
- 'key' => ['apple', 'sauce', 'is'],
- 'assertKeys' => [
- [
- 'path' => ['apple', 'sauce', 'is'],
- 'expected' => NULL
- ],
- [
- 'path' => ['apple', 'sauce'],
- 'expected' => [
- 'is' => NULL
- ]
- ]
- ]
- ]
- ];
- }
-
- /**
- * @dataProvider dataConfigDelete
- */
- public function testConfigDelete($key, $assertKeys)
- {
- $config = new Config([]);
- $config->set(['apple', 'sauce', 'is'], 'great');
- $config->delete($key);
-
- foreach($assertKeys as $pair)
- {
- $this->assertEquals($pair['expected'], $config->get($pair['path']));
- }
- }
-
- public function testGetNonExistentConfigItem()
- {
- $this->assertNull($this->config->get('foobar'));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Di/ContainerAwareTest.php b/tests/Ion/Di/ContainerAwareTest.php
deleted file mode 100644
index dd506721..00000000
--- a/tests/Ion/Di/ContainerAwareTest.php
+++ /dev/null
@@ -1,39 +0,0 @@
-container = $container;
- }
-}
-
-
-class ContainerAwareTest extends AnimeClient_TestCase {
-
- public function setUp()
- {
- $this->container = new Container();
- $this->aware = new Aware($this->container);
- }
-
- public function testContainerAwareTrait()
- {
- // The container was set in setup
- // check that the get method returns the same
- $this->assertSame($this->container, $this->aware->getContainer());
-
- $container2 = new Container([
- 'foo' => 'bar',
- 'baz' => 'foobar'
- ]);
- $this->aware->setContainer($container2);
- $this->assertSame($container2, $this->aware->getContainer());
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Di/ContainerTest.php b/tests/Ion/Di/ContainerTest.php
deleted file mode 100644
index bbf22627..00000000
--- a/tests/Ion/Di/ContainerTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-container = new Container();
- }
-
- public function dataGetWithException()
- {
- return [
- 'Bad index type: number' => [
- 'id' => 42,
- 'exception' => 'Aviat\Ion\Di\Exception\ContainerException',
- 'message' => 'Id must be a string'
- ],
- 'Bad index type: array' => [
- 'id' => [],
- 'exception' => 'Aviat\Ion\Di\Exception\ContainerException',
- 'message' => 'Id must be a string'
- ],
- 'Non-existent id' => [
- 'id' => 'foo',
- 'exception' => 'Aviat\Ion\Di\Exception\NotFoundException',
- 'message' => "Item 'foo' does not exist in container."
- ]
- ];
- }
-
- /**
- * @dataProvider dataGetWithException
- */
- public function testGetWithException($id, $exception, $message)
- {
- try
- {
- $this->container->get($id);
- }
- catch(ContainerException $e)
- {
- $this->assertInstanceOf($exception, $e);
- $this->assertEquals($message, $e->getMessage());
- }
- }
-
- public function testGetSet()
- {
- $container = $this->container->set('foo', function() {});
-
- $this->assertInstanceOf('Aviat\Ion\Di\Container', $container);
- $this->assertInstanceOf('Aviat\Ion\Di\ContainerInterface', $container);
- $this->assertTrue(is_callable($container->get('foo')));
- }
-
- public function testLoggerMethods()
- {
- // Does the container have the default logger?
- $this->assertFalse($this->container->hasLogger());
- $this->assertFalse($this->container->hasLogger('default'));
-
- $logger1 = new Logger('default');
- $logger2 = new Logger('testing');
- $logger1->pushHandler(new NullHandler());
- $logger2->pushHandler(new TestHandler());
-
- // Set the logger channels
- $container = $this->container->setLogger($logger1);
- $container2 = $this->container->setLogger($logger2, 'test');
-
- $this->assertInstanceOf('Aviat\Ion\Di\ContainerInterface', $container);
- $this->assertInstanceOf('Aviat\Ion\Di\Container', $container2);
-
- $this->assertEquals($logger1, $this->container->getLogger('default'));
- $this->assertEquals($logger2, $this->container->getLogger('test'));
- $this->assertNull($this->container->getLogger('foo'));
-
- $this->assertTrue($this->container->hasLogger());
- $this->assertTrue($this->container->hasLogger('default'));
- $this->assertTrue($this->container->hasLogger('test'));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/EnumTest.php b/tests/Ion/EnumTest.php
deleted file mode 100644
index 5a766b19..00000000
--- a/tests/Ion/EnumTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
- 'bar',
- 'BAR' => 'foo',
- 'FOOBAR' => 'baz'
- ];
-
- public function setUp()
- {
- parent::setUp();
- $this->enum = new TestEnum();
- }
-
- public function testStaticGetConstList()
- {
- $actual = TestEnum::getConstList();
- $this->assertEquals($this->expectedConstList, $actual);
- }
-
- public function testGetConstList()
- {
- $actual = $this->enum->getConstList();
- $this->assertEquals($this->expectedConstList, $actual);
- }
-
- public function dataIsValid()
- {
- return [
- 'Valid' => [
- 'value' => 'baz',
- 'expected' => TRUE,
- 'static' => FALSE
- ],
- 'ValidStatic' => [
- 'value' => 'baz',
- 'expected' => TRUE,
- 'static' => TRUE
- ],
- 'Invalid' => [
- 'value' => 'foobar',
- 'expected' => FALSE,
- 'static' => FALSE
- ],
- 'InvalidStatic' => [
- 'value' => 'foobar',
- 'expected' => FALSE,
- 'static' => TRUE
- ]
- ];
- }
-
- /**
- * @dataProvider dataIsValid
- */
- public function testIsValid($value, $expected, $static)
- {
- $actual = ($static)
- ? TestEnum::isValid($value)
- : $this->enum->isValid($value);
-
- $this->assertEquals($expected, $actual);
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/FriendTest.php b/tests/Ion/FriendTest.php
deleted file mode 100644
index 1569eb42..00000000
--- a/tests/Ion/FriendTest.php
+++ /dev/null
@@ -1,56 +0,0 @@
-friend = new Friend($obj);
- }
-
- public function testPrivateMethod()
- {
- $actual = $this->friend->getPrivate();
- $this->assertEquals(23, $actual);
- }
-
- public function testProtectedMethod()
- {
- $actual = $this->friend->getProtected();
- $this->assertEquals(4, $actual);
- }
-
- public function testGet()
- {
- $this->assertEquals(356, $this->friend->protected);
- $this->assertNull($this->friend->foo); // Return NULL for non-existend properties
- $this->assertEquals(47, $this->friend->parentProtected);
- $this->assertEquals(84, $this->friend->grandParentProtected);
- $this->assertNull($this->friend->parentPrivate); // Can't get a parent's privates
- }
-
- public function testSet()
- {
- $this->friend->private = 123;
- $this->assertEquals(123, $this->friend->private);
-
- $this->friend->foo = 32;
- $this->assertNull($this->friend->foo);
- }
-
- public function testBadInvokation()
- {
- $this->setExpectedException('InvalidArgumentException', 'Friend must be an object');
-
- $friend = new Friend('foo');
- }
-
- public function testBadMethod()
- {
- $this->setExpectedException('BadMethodCallException', "Method 'foo' does not exist");
- $this->friend->foo();
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/JsonTest.php b/tests/Ion/JsonTest.php
deleted file mode 100644
index 44cb4bbe..00000000
--- a/tests/Ion/JsonTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
- [1, 2, 3, 4]
- ];
- $expected = '{"foo":[1,2,3,4]}';
- $this->assertEquals($expected, Json::encode($data));
- }
-
- public function dataEncodeDecode()
- {
- return [
- 'set1' => [
- 'data' => [
- 'apple' => [
- 'sauce' => ['foo','bar','baz']
- ]
- ],
- 'expected_size' => 39,
- 'expected_json' => '{"apple":{"sauce":["foo","bar","baz"]}}'
- ]
- ];
- }
-
- /**
- * @dataProvider dataEncodeDecode
- */
- public function testEncodeDecodeFile($data, $expected_size, $expected_json)
- {
- $target_file = _dir(self::TEST_DATA_DIR, 'json_write.json');
-
- $actual_size = Json::encodeFile($target_file, $data);
- $actual_json = file_get_contents($target_file);
-
- $this->assertTrue(Json::isJson($actual_json));
- $this->assertEquals($expected_size, $actual_size);
- $this->assertEquals($expected_json, $actual_json);
-
- $this->assertEquals($data, Json::decodeFile($target_file));
-
- unlink($target_file);
- }
-
- public function testDecode()
- {
- $json = '{"foo":[1,2,3,4]}';
- $expected = [
- 'foo' => [1, 2, 3, 4]
- ];
- $this->assertEquals($expected, Json::decode($json));
- $this->assertEquals((object)$expected, Json::decode($json, false));
-
- $badJson = '{foo:{1|2}}';
- $this->setExpectedException(
- 'Aviat\Ion\JsonException',
- 'JSON_ERROR_SYNTAX - Syntax error',
- JSON_ERROR_SYNTAX
- );
- Json::decode($badJson);
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Model/BaseDBModelTest.php b/tests/Ion/Model/BaseDBModelTest.php
deleted file mode 100644
index bdaf1954..00000000
--- a/tests/Ion/Model/BaseDBModelTest.php
+++ /dev/null
@@ -1,12 +0,0 @@
-container->get('config'));
- $this->assertTrue(is_object($baseDBModel));
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Transformer/AbstractTransformerTest.php b/tests/Ion/Transformer/AbstractTransformerTest.php
deleted file mode 100644
index 246658ac..00000000
--- a/tests/Ion/Transformer/AbstractTransformerTest.php
+++ /dev/null
@@ -1,89 +0,0 @@
-transformer = new TestTransformer();
- }
-
- public function dataTransformCollection()
- {
- return [
- 'object' => [
- 'original' => [
- (object)[
- ['name' => 'Comedy'],
- ['name' => 'Romance'],
- ['name' => 'School'],
- ['name' => 'Harem']
- ],
- (object)[
- ['name' => 'Action'],
- ['name' => 'Comedy'],
- ['name' => 'Magic'],
- ['name' => 'Fantasy'],
- ['name' => 'Mahou Shoujo']
- ],
- (object)[
- ['name' => 'Comedy'],
- ['name' => 'Sci-Fi']
- ]
- ],
- 'expected' => [
- ['Comedy', 'Romance', 'School', 'Harem'],
- ['Action', 'Comedy', 'Magic', 'Fantasy', 'Mahou Shoujo'],
- ['Comedy', 'Sci-Fi']
- ]
- ],
- 'array' => [
- 'original' => [
- [
- ['name' => 'Comedy'],
- ['name' => 'Romance'],
- ['name' => 'School'],
- ['name' => 'Harem']
- ],
- [
- ['name' => 'Action'],
- ['name' => 'Comedy'],
- ['name' => 'Magic'],
- ['name' => 'Fantasy'],
- ['name' => 'Mahou Shoujo']
- ],
- [
- ['name' => 'Comedy'],
- ['name' => 'Sci-Fi']
- ]
- ],
- 'expected' => [
- ['Comedy', 'Romance', 'School', 'Harem'],
- ['Action', 'Comedy', 'Magic', 'Fantasy', 'Mahou Shoujo'],
- ['Comedy', 'Sci-Fi']
- ]
- ],
- ];
- }
-
- public function testTransform()
- {
- $data = $this->dataTransformCollection();
- $original = $data['object']['original'][0];
- $expected = $data['object']['expected'][0];
-
- $actual = $this->transformer->transform($original);
- $this->assertEquals($expected, $actual);
- }
-
- /**
- * @dataProvider dataTransformCollection
- */
- public function testTransformCollection($original, $expected)
- {
- $actual = $this->transformer->transform_collection($original);
- $this->assertEquals($expected, $actual);
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/Type/ArrayTypeTest.php b/tests/Ion/Type/ArrayTypeTest.php
deleted file mode 100644
index e78315ee..00000000
--- a/tests/Ion/Type/ArrayTypeTest.php
+++ /dev/null
@@ -1,173 +0,0 @@
- 'array_chunk',
- 'pluck' => 'array_column',
- 'assoc_diff' => 'array_diff_assoc',
- 'key_diff' => 'array_diff_key',
- 'diff' => 'array_diff',
- 'filter' => 'array_filter',
- 'flip' => 'array_flip',
- 'intersect' => 'array_intersect',
- 'keys' => 'array_keys',
- 'merge' => 'array_merge',
- 'pad' => 'array_pad',
- 'random' => 'array_rand',
- 'reduce' => 'array_reduce',
- ];
-
- return [
- 'array_merge' => [
- 'method' => 'merge',
- 'array' => [1, 3, 5, 7],
- 'args' => [[2, 4, 6, 8]],
- 'expected' => [1, 3, 5, 7, 2, 4, 6, 8]
- ],
- 'array_product' => [
- 'method' => 'product',
- 'array' => [1, 2, 3],
- 'args' => [],
- 'expected' => 6
- ],
- 'array_reverse' => [
- 'method' => 'reverse',
- 'array' => [1, 2, 3, 4, 5],
- 'args' => [],
- 'expected' => [5, 4, 3, 2, 1]
- ],
- 'array_sum' => [
- 'method' => 'sum',
- 'array' => [1, 2, 3, 4, 5, 6],
- 'args' => [],
- 'expected' => 21
- ],
- 'array_unique' => [
- 'method' => 'unique',
- 'array' => [1, 1, 3, 2, 2, 2, 3, 3, 5],
- 'args' => [SORT_REGULAR],
- 'expected' => [0 => 1, 2 => 3, 3 => 2, 8 => 5]
- ],
- 'array_values' => [
- 'method' => 'values',
- 'array' => ['foo' => 'bar', 'baz' => 'foobar'],
- 'args' => [],
- 'expected' => ['bar', 'foobar']
- ]
- ];
- }
-
- /**
- * Test the array methods defined for the __Call method
- *
- * @dataProvider dataCall
- */
- public function testCall($method, $array, $args, $expected)
- {
- $obj = $this->arr($array);
- $actual = $obj->__call($method, $args);
- $this->assertEquals($expected, $actual);
- }
-
- public function testSet()
- {
- $obj = $this->arr([]);
- $arraytype = $obj->set('foo', 'bar');
-
- $this->assertInstanceOf('Aviat\Ion\Type\ArrayType', $arraytype);
- $this->assertEquals('bar', $obj->get('foo'));
- }
-
- public function testGet()
- {
- $array = [1, 2, 3, 4, 5];
- $obj = $this->arr($array);
- $this->assertEquals($array, $obj->get());
- $this->assertEquals(1, $obj->get(0));
- $this->assertEquals(5, $obj->get(4));
- }
-
- public function testGetDeepKey()
- {
- $arr = [
- 'foo' => 'bar',
- 'baz' => [
- 'bar' => 'foobar'
- ]
- ];
- $obj = $this->arr($arr);
- $this->assertEquals('foobar', $obj->get_deep_key(['baz', 'bar']));
- $this->assertNull($obj->get_deep_key(['foo', 'bar', 'baz']));
- }
-
- public function testMap()
- {
- $obj = $this->arr([1, 2, 3]);
- $actual = $obj->map(function($item) {
- return $item * 2;
- });
-
- $this->assertEquals([2, 4, 6], $actual);
- }
-
- public function testBadCall()
- {
- $obj = $this->arr([]);
-
- $this->setExpectedException('InvalidArgumentException', "Method 'foo' does not exist");
- $obj->foo();
- }
-
- public function testShuffle()
- {
- $original = [1, 2, 3, 4];
- $test = [1, 2, 3, 4];
- $obj = $this->arr($test);
- $actual = $obj->shuffle();
-
- //$this->assertNotEquals($actual, $original);
- $this->assertTrue(is_array($actual));
- }
-
- public function testHasKey()
- {
- $obj = $this->arr([
- 'a' => 'b',
- 'z' => 'y'
- ]);
- $this->assertTrue($obj->has_key('a'));
- $this->assertFalse($obj->has_key('b'));
- }
-
- public function testHas()
- {
- $obj = $this->arr([1, 2, 6, 8, 11]);
- $this->assertTrue($obj->has(8));
- $this->assertFalse($obj->has(8745));
- }
-
- public function testSearch()
- {
- $obj = $this->arr([1, 2, 5, 7, 47]);
- $actual = $obj->search(47);
- $this->assertEquals(4, $actual);
- }
-
- public function testFill()
- {
- $obj = $this->arr([]);
- $expected = ['?', '?', '?'];
- $actual = $obj->fill(0, 3, '?');
- $this->assertEquals($actual, $expected);
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/View/HtmlViewTest.php b/tests/Ion/View/HtmlViewTest.php
deleted file mode 100644
index cab5aecf..00000000
--- a/tests/Ion/View/HtmlViewTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-view = new TestHtmlView($this->container);
- }
-
- public function testRenderTemplate()
- {
- $path = _dir(self::TEST_VIEW_DIR, 'test_view.php');
- $expected = 'foo';
- $actual = $this->view->render_template($path, [
- 'var' => 'foo'
- ]);
- $this->assertEquals($expected, $actual);
- }
-
-}
\ No newline at end of file
diff --git a/tests/Ion/View/HttpViewTest.php b/tests/Ion/View/HttpViewTest.php
deleted file mode 100644
index 0112246d..00000000
--- a/tests/Ion/View/HttpViewTest.php
+++ /dev/null
@@ -1,46 +0,0 @@
-view = new TestHttpView($this->container);
- $this->friend = new Friend($this->view);
- }
-
- public function testGetOutput()
- {
- $this->friend->setOutput('foo');
- $this->assertEquals('foo', $this->friend->getOutput());
- $this->assertFalse($this->friend->hasRendered);
-
- $this->assertEquals($this->friend->getOutput(), $this->friend->__toString());
- $this->assertTrue($this->friend->hasRendered);
- }
-
- public function testSetOutput()
- {
- $same = $this->view->setOutput('');
- $this->assertEquals($same, $this->view);
- $this->assertEquals('', $this->view->getOutput());
- }
-
- public function testAppendOutput()
- {
- $this->view->setOutput('');
- $this->view->appendOutput('
');
- $this->assertEquals('', $this->view->getOutput());
- }
-
- public function testSetStatusCode()
- {
- $view = $this->view->setStatusCode(404);
- $this->assertEquals(404, $view->response->getStatusCode());
- }
-}
\ No newline at end of file
diff --git a/tests/Ion/View/JsonViewTest.php b/tests/Ion/View/JsonViewTest.php
deleted file mode 100644
index 0c21bb54..00000000
--- a/tests/Ion/View/JsonViewTest.php
+++ /dev/null
@@ -1,43 +0,0 @@
-view = new TestJsonView($this->container);
- $this->friend = new Friend($this->view);
- }
-
- public function testSetOutputJSON()
- {
- // Extend view class to remove destructor which does output
- $view = new TestJsonView($this->container);
-
- // Json encode non-string
- $content = ['foo' => 'bar'];
- $expected = json_encode($content);
- $view->setOutput($content);
- $this->assertEquals($expected, $this->view->getOutput());
- }
-
- public function testSetOutput()
- {
- // Directly set string
- $view = new TestJsonView($this->container);
- $content = '{}';
- $expected = '{}';
- $view->setOutput($content);
- $this->assertEquals($expected, $view->getOutput());
- }
-
- public function testOutput()
- {
- $this->assertEquals('application/json', $this->friend->contentType);
- }
-}
\ No newline at end of file