Skip to content
Snippets Groups Projects
Commit b439c9f2 authored by Josh Pollock's avatar Josh Pollock
Browse files

allow resetting query

parent d299b87a
No related branches found
No related tags found
No related merge requests found
...@@ -96,4 +96,18 @@ class DeleteQueryBuilderTest extends TestCase ...@@ -96,4 +96,18 @@ class DeleteQueryBuilderTest extends TestCase
->getName() ->getName()
); );
} }
/**
* Test reset of builder
*
* @covers DeleteQueryBuilder::resetBuilder()
* @covers DeleteQueryBuilder::$deleteQuery
*/
public function testResetOfBuilder()
{
$entryGenerator = $this->entryDeleteGeneratorFactory();
$newBuilder = new MySqlBuilder();
$entryGenerator->resetBuilder( $newBuilder );
$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
}
} }
...@@ -109,4 +109,17 @@ class SelectQueryBuilderTest extends TestCase ...@@ -109,4 +109,17 @@ class SelectQueryBuilderTest extends TestCase
$this->assertEquals(Entry::DESC, 'DESC'); $this->assertEquals(Entry::DESC, 'DESC');
$this->assertEquals(EntryValues::DESC, 'DESC'); $this->assertEquals(EntryValues::DESC, 'DESC');
} }
/**
* Test reset of builder
*
* @covers SelectQueryBuilder::resetBuilder()
*/
public function testResetOfBuilder()
{
$entryGenerator = $this->entryGeneratorFactory();
$newBuilder = new MySqlBuilder();
$entryGenerator->resetBuilder( $newBuilder );
$this->assertSame( $newBuilder, $entryGenerator->getBuilder( ) );
}
} }
...@@ -31,4 +31,12 @@ interface CreatesSqlQueries ...@@ -31,4 +31,12 @@ interface CreatesSqlQueries
* @return MySqlBuilder * @return MySqlBuilder
*/ */
public function getBuilder(); public function getBuilder();
/**
* Reset the query builder
*
* @param MySqlBuilder|null $builder New builder or null to use default empty
* @return $this
*/
public function resetBuilder( MySqlBuilder $builder = null );
} }
...@@ -44,6 +44,18 @@ abstract class QueryBuilder implements CreatesSqlQueries ...@@ -44,6 +44,18 @@ abstract class QueryBuilder implements CreatesSqlQueries
$this->tableName = $tableName; $this->tableName = $tableName;
} }
/** @inheritdoc */
public function resetBuilder(MySqlBuilder $builder = null)
{
if( ! $builder ){
$builder = new MySqlBuilder();
}
$this->builder = $builder;
return $this;
}
/** /**
* @return AbstractBaseQuery * @return AbstractBaseQuery
*/ */
......
...@@ -47,4 +47,6 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer ...@@ -47,4 +47,6 @@ abstract class SelectQueryBuilder extends QueryBuilder implements DoesSelectQuer
$this->getCurrentQuery()->orderBy($column, $order); $this->getCurrentQuery()->orderBy($column, $order);
return $this; return $this;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment