Skip to content

Commit

Permalink
Moved Request to Connection Namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
Nils Langner committed Jul 7, 2011
1 parent 9ad08c3 commit 80b1d8f
Show file tree
Hide file tree
Showing 32 changed files with 241 additions and 31 deletions.
2 changes: 1 addition & 1 deletion src/LiveTest/Config/Tags/TestSuite/ExcludePages.php
Expand Up @@ -9,7 +9,7 @@

namespace LiveTest\Config\Tags\TestSuite;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;


/**
Expand Down
2 changes: 1 addition & 1 deletion src/LiveTest/Config/Tags/TestSuite/IncludePages.php
Expand Up @@ -10,7 +10,7 @@
namespace LiveTest\Config\Tags\TestSuite;

use LiveTest\Config\TestSuite as TestSuiteConfig;
use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

/**
* This tag includes a list of pages.
Expand Down
2 changes: 1 addition & 1 deletion src/LiveTest/Config/Tags/TestSuite/PageFiles.php
Expand Up @@ -9,7 +9,7 @@

namespace LiveTest\Config\Tags\TestSuite;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;


/**
Expand Down
2 changes: 1 addition & 1 deletion src/LiveTest/Config/Tags/TestSuite/Pages.php
Expand Up @@ -10,7 +10,7 @@
namespace LiveTest\Config\Tags\TestSuite;

use LiveTest\Config\Parser;
use LiveTest\Config\Request\Symfony as SymfonyRequest;
use LiveTest\Connection\Request\Symfony as SymfonyRequest;

/**
* This tag sets a list of pages to the configuration and stops the inheritance of the config file. If
Expand Down
11 changes: 11 additions & 0 deletions src/LiveTest/Connection/Request/Request.php
@@ -0,0 +1,11 @@
<?php

namespace LiveTest\Connection\Request;

use Base\Www\Uri;
use Base\Http\Request\Request as BaseRequest;

interface Request extends BaseRequest
{
public function getIdentifier();
}
199 changes: 199 additions & 0 deletions src/LiveTest/Connection/Request/Symfony.php
@@ -0,0 +1,199 @@
<?php

namespace LiveTest\Connection\Request;

use Base\Http\Request\Request as BaseRequest;
use Base\Www\Uri;
use Base\ArrayLists\Recursive;

use LiveTest\Exception;

use Symfony\Component\HttpFoundation\Request as SymfonyRequest;

class Symfony implements Request
{
/**
* Contains the Unique-Id for every Request, composed setIdentifier();
* @var string $identifier
*/
private $identifier;

/**
* Holds the delegated SymfonyRequest-Object.
*
* @var SymfonyRequest $request
*/
private $request;

/**
* @var array $parameters
*/
private $parameters;

/**
* Constructor for new Requests.
*
* @param SymfonyRequest $request
* @param array $parameters
*/
public function __construct(SymfonyRequest $request, array $parameters)
{
$this->request = $request;
ksort($parameters);
$this->parameters = $parameters;
$this->setIdentifier(array ($request->getUri(), $request->getMethod(), array_keys($parameters), array_values($parameters)));
}

/**
* Creates Requests from a list of urls. If $baseUri is given, urls are merged with baseUri.
*
* @param array $parameters
* @param Uri $baseUri
*/
public static function createRequestsFromParameters(array $parameters, Uri $baseUri = null)
{
if (count($parameters) == 0)
{
throw new Exception('Parameter has to be set.');
}

$requests = array ();
$preparedRequestParameters = self::prepareRequestParameters($parameters);

foreach ($preparedRequestParameters as $aPreparedParameter)
{

if ($baseUri == null)
{
$uri = new Uri($aPreparedParameter['uri']);
}
else
{
$uri = $baseUri->concatUri($aPreparedParameter['uri']);
}

$requests[] = self::create($uri, $aPreparedParameter['method'], $aPreparedParameter['parameters']);
}

return $requests;
}

/**
* Creates new LiveTest-Symfony-Requests by using (delegation) the
* original SymfonyRequest.
*
* @param Uri $uri
* @param String $method
* @param array $requestParameters
*/
public static function create(Uri $uri, $method = 'get', $requestParameters = array())
{
$request = SymfonyRequest::create($uri->toString(), $method, $requestParameters);

return new static($request, $requestParameters);
}

/**
* Sets the unique identifier for each request
*
* @param array $parameters
* @throws \Exception
*/
private function setIdentifier(array $parameters)
{
$this->identifier = Recursive::implode('_', $parameters);
}

/**
* Decides which kind of parameters for the request are allready set.
* If only a list of Urls is given, the default ones are added.
* Otherwise the given ones are used.
*
* @param array $parameters
*
* @return array $mergedParameters;
*/
private static function prepareRequestParameters(array $parameters)
{
$mergedRequestParameters = array ();
foreach ($parameters as $aRequest)
{
if (is_array($aRequest))
{
$url = $aRequest["url"];
unset($aRequest["url"]);
$mergedRequestParameters[] = self::getMergedRequestParameters($url, $aRequest);
}
else
{
$uri = $aRequest;
$mergedRequestParameters[] = self::getMergedRequestParameters($uri, array ());
}
}
return $mergedRequestParameters;
}

/**
* Merges default set of parameters with given URI and $parameters
*
* @param String $uri
* @param array $parameters
*
* @return array $mergesParameters
*/
private static function getMergedRequestParameters($uri, array $parameters)
{
$mergedParameters = array ();

$defaults = array ('uri' => '', 'method' => BaseRequest::GET, 'parameters' => array ());

$mergedParameters['uri'] = $uri;

if (key_exists(BaseRequest::GET, $parameters) || key_exists(BaseRequest::POST, $parameters))
{
$method = array_keys($parameters);
$mergedParameters['method'] = $method[0];

$requestParameters = $parameters[$mergedParameters['method']];

if (count($requestParameters) > 0)
{
$mergedParameters['parameters'] = $requestParameters;
}
}

return array_merge($defaults, $mergedParameters);
}

/**
* @see Base\Http\Request.Request::getMethod()
*/
public function getMethod()
{
return $this->request->getMethod();
}

/**
* @see Base\Http\Request.Request::getUri()
*/
public function getUri()
{
return $this->request->getUri();
}

/**
* @see LiveTest\Connection\Request.Request::getIdentifier()
*/
public function getIdentifier()
{
return $this->identifier;
}

/**
* @see Base\Http\Request.Request::getParameters()
*/
public function getParameters()
{
return $this->parameters;
}
}
2 changes: 1 addition & 1 deletion src/LiveTest/Connection/Session/Session.php
Expand Up @@ -9,7 +9,7 @@

namespace LiveTest\Connection\Session;

use LiveTest\Config\Request\Request;
use LiveTest\Connection\Request\Request;

use Base\Www\Uri;

Expand Down
2 changes: 1 addition & 1 deletion src/LiveTest/Packages/Website/Listener/Statistics.php
Expand Up @@ -8,7 +8,7 @@
use Base\Http\Client\Zend;
use Base\Www\Uri;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;
use LiveTest\Listener\Base;
use LiveTest\TestRun\Information;
use LiveTest\TestRun\Properties;
Expand Down
2 changes: 1 addition & 1 deletion src/LiveTest/TestRun/Properties.php
Expand Up @@ -21,7 +21,7 @@
use Base\Config\Yaml;
use Base\Www\Uri;

use LiveTest\Config\Request\LiveTest as Request;
use LiveTest\Connection\Request\LiveTest as Request;

/**
* A properties class holds all information about a test run. It prepares athe data given by
Expand Down
2 changes: 1 addition & 1 deletion src/lib/Base/Www/Html/Validator/W3.php
Expand Up @@ -13,7 +13,7 @@

use Symfony\Component\HttpFoundation\Request;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;

use Base\Www\Html\Validator;
use Base\Www\Html\Document;
Expand Down
4 changes: 2 additions & 2 deletions test/Unit/LiveTest/Config/Request/SymfonyTest.php
@@ -1,11 +1,11 @@
<?php
namespace Unit\LiveTest\Config\Request;
namespace Unit\LiveTest\Connection\Request;

/**
* test case.
*/
use Base\Www\Uri;
use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

class SymfonyTest extends \PHPUnit_Framework_TestCase
{
Expand Down
2 changes: 1 addition & 1 deletion test/Unit/LiveTest/Config/TestSuiteTest.php
Expand Up @@ -7,7 +7,7 @@
use LiveTest\Config\TestSuite;
use Base\Www\Uri;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

class TestSuiteTest extends \PHPUnit_Framework_TestCase
{
Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Unit\LiveTest\Packages\Reporting\Format;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

use Base\Http\ConnectionStatus;

Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\Packages\Reporting\Listeners;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

use Unit\Base\Http\Response\MockUp;

Expand Down
Expand Up @@ -14,7 +14,7 @@
use Base\Www\Uri;
use Base\Http\ConnectionStatus;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

class ReportTest extends \PHPUnit_Framework_TestCase
{
Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\Packages\Runner\Listeners;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

use Unit\Base\Http\Response\MockUp;

Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Unit\LiveTest\Packages\Runner\Listeners;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

use Unit\Base\Http\Response\MockUp;

Expand Down
2 changes: 1 addition & 1 deletion test/Unit/LiveTest/Packages/Sleep/Listeners/SleepTest.php
Expand Up @@ -4,7 +4,7 @@

use Unit\Base\Http\Response\MockUp;

use LiveTest\Config\Request\Symfony as Request;
use LiveTest\Connection\Request\Symfony as Request;

use Base\Http\Response\Zend;

Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\TestCases\General\Html;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;

use Unit\Base\Http\Response\MockUp;

Expand Down
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\TestCases\General\Html;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;

use Unit\Base\Http\Response\MockUp;

Expand Down
2 changes: 1 addition & 1 deletion test/Unit/LiveTest/TestCases/General/Html/SizeTest.php
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\TestCases\General\Html;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;

use Unit\Base\Http\Response\MockUp;

Expand Down
2 changes: 1 addition & 1 deletion test/Unit/LiveTest/TestCases/General/Html/TestCaseTest.php
Expand Up @@ -2,7 +2,7 @@

namespace Test\Unit\LiveTest\TestCases\General\Html;

use LiveTest\Config\Request\Symfony;
use LiveTest\Connection\Request\Symfony;

use Unit\Base\Http\Response\MockUp;

Expand Down

0 comments on commit 80b1d8f

Please sign in to comment.