Skip to content

Commit

Permalink
Fixed delete (#13)
Browse files Browse the repository at this point in the history
  • Loading branch information
mmoreram authored Feb 26, 2020
1 parent 3bbe4b4 commit 413566d
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .php_cs.cache
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"php":"7.4.2","version":"2.16.1","indent":" ","lineEnding":"\n","rules":{"blank_line_after_namespace":true,"braces":{"allow_single_line_closure":true},"class_definition":{"single_line":true},"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":true,"single_import_per_statement":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"binary_operator_spaces":true,"blank_line_after_opening_tag":true,"blank_line_before_statement":{"statements":["return"]},"cast_spaces":true,"class_attributes_separation":{"elements":["method"]},"concat_space":true,"declare_equal_normalize":true,"function_typehint_space":true,"include":true,"increment_style":true,"lowercase_cast":true,"lowercase_static_reference":true,"magic_constant_casing":true,"magic_method_casing":true,"native_function_casing":true,"native_function_type_declaration_casing":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":{"tokens":["curly_brace_block","extra","parenthesis_brace_block","square_brace_block","throw","use"]},"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_mixed_echo_print":true,"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unneeded_curly_braces":true,"no_unneeded_final_method":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"no_whitespace_in_blank_line":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"ordered_imports":true,"php_unit_fqcn_annotation":true,"phpdoc_align":{"tags":["method","param","property","return","throws","type","var"]},"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_types":true,"phpdoc_types_order":{"null_adjustment":"always_last","sort_algorithm":"none"},"phpdoc_var_without_name":true,"return_type_declaration":true,"semicolon_after_instruction":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_line_comment_style":{"comment_types":["hash"]},"single_line_throw":true,"single_quote":true,"single_trait_insert_per_statement":true,"space_after_semicolon":{"remove_in_empty_for_expressions":true},"standardize_increment":true,"standardize_not_equals":true,"ternary_operator_spaces":true,"trailing_comma_in_multiline_array":true,"trim_array_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"yoda_style":true},"hashes":{"src\/Driver\/Mysql\/MysqlDriver.php":1496639553,"src\/Driver\/Mysql\/EmptyDoctrineMysqlDriver.php":3752159343,"src\/Driver\/PlainDriverException.php":1220843308,"src\/Driver\/SQLite\/SQLiteDriver.php":1552696176,"src\/Driver\/SQLite\/EmptyDoctrineSQLiteDriver.php":117021226,"src\/Driver\/Driver.php":2379534927,"src\/Driver\/PostgreSQL\/EmptyDoctrinePostgreSQLDriver.php":2852569520,"src\/Driver\/PostgreSQL\/PostgreSQLDriver.php":2231856679,"src\/Credentials.php":1470751445,"src\/Result.php":1940786624,"src\/Connection.php":297218298,"src\/Mock\/MockedDBALConnection.php":2847858253,"src\/Mock\/MockedDriver.php":1506357739,"tests\/ConnectionTest.php":4000367914,"tests\/SQLiteConnectionTest.php":624031957,"tests\/PostgreSQLConnectionTest.php":2591829216,"tests\/MysqlConnectionTest.php":3860731532}}
{"php":"7.4.2","version":"2.16.1","indent":" ","lineEnding":"\n","rules":{"blank_line_after_namespace":true,"braces":{"allow_single_line_closure":true},"class_definition":{"single_line":true},"constant_case":true,"elseif":true,"function_declaration":true,"indentation_type":true,"line_ending":true,"lowercase_keywords":true,"method_argument_space":true,"no_break_comment":true,"no_closing_tag":true,"no_spaces_after_function_name":true,"no_spaces_inside_parenthesis":true,"no_trailing_whitespace":true,"no_trailing_whitespace_in_comment":true,"single_blank_line_at_eof":true,"single_class_element_per_statement":true,"single_import_per_statement":true,"switch_case_semicolon_to_colon":true,"switch_case_space":true,"visibility_required":true,"encoding":true,"full_opening_tag":true,"array_syntax":{"syntax":"short"},"binary_operator_spaces":true,"blank_line_after_opening_tag":true,"blank_line_before_statement":{"statements":["return"]},"cast_spaces":true,"class_attributes_separation":{"elements":["method"]},"concat_space":true,"declare_equal_normalize":true,"function_typehint_space":true,"include":true,"increment_style":true,"lowercase_cast":true,"lowercase_static_reference":true,"magic_constant_casing":true,"magic_method_casing":true,"native_function_casing":true,"native_function_type_declaration_casing":true,"new_with_braces":true,"no_blank_lines_after_class_opening":true,"no_blank_lines_after_phpdoc":true,"no_empty_comment":true,"no_empty_phpdoc":true,"no_empty_statement":true,"no_extra_blank_lines":{"tokens":["curly_brace_block","extra","parenthesis_brace_block","square_brace_block","throw","use"]},"no_leading_import_slash":true,"no_leading_namespace_whitespace":true,"no_mixed_echo_print":true,"no_multiline_whitespace_around_double_arrow":true,"no_short_bool_cast":true,"no_singleline_whitespace_before_semicolons":true,"no_spaces_around_offset":true,"no_trailing_comma_in_list_call":true,"no_trailing_comma_in_singleline_array":true,"no_unneeded_control_parentheses":true,"no_unneeded_curly_braces":true,"no_unneeded_final_method":true,"no_unused_imports":true,"no_whitespace_before_comma_in_array":true,"no_whitespace_in_blank_line":true,"normalize_index_brace":true,"object_operator_without_whitespace":true,"ordered_imports":true,"php_unit_fqcn_annotation":true,"phpdoc_align":{"tags":["method","param","property","return","throws","type","var"]},"phpdoc_annotation_without_dot":true,"phpdoc_indent":true,"phpdoc_inline_tag":true,"phpdoc_no_access":true,"phpdoc_no_alias_tag":true,"phpdoc_no_package":true,"phpdoc_no_useless_inheritdoc":true,"phpdoc_return_self_reference":true,"phpdoc_scalar":true,"phpdoc_separation":true,"phpdoc_single_line_var_spacing":true,"phpdoc_summary":true,"phpdoc_to_comment":true,"phpdoc_trim":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_types":true,"phpdoc_types_order":{"null_adjustment":"always_last","sort_algorithm":"none"},"phpdoc_var_without_name":true,"return_type_declaration":true,"semicolon_after_instruction":true,"short_scalar_cast":true,"single_blank_line_before_namespace":true,"single_line_comment_style":{"comment_types":["hash"]},"single_line_throw":true,"single_quote":true,"single_trait_insert_per_statement":true,"space_after_semicolon":{"remove_in_empty_for_expressions":true},"standardize_increment":true,"standardize_not_equals":true,"ternary_operator_spaces":true,"trailing_comma_in_multiline_array":true,"trim_array_spaces":true,"unary_operator_spaces":true,"whitespace_after_comma_in_array":true,"yoda_style":true},"hashes":{"src\/Driver\/Mysql\/MysqlDriver.php":1496639553,"src\/Driver\/Mysql\/EmptyDoctrineMysqlDriver.php":3752159343,"src\/Driver\/PlainDriverException.php":1220843308,"src\/Driver\/SQLite\/SQLiteDriver.php":1552696176,"src\/Driver\/SQLite\/EmptyDoctrineSQLiteDriver.php":117021226,"src\/Driver\/Driver.php":4188879766,"src\/Driver\/PostgreSQL\/EmptyDoctrinePostgreSQLDriver.php":2852569520,"src\/Driver\/PostgreSQL\/PostgreSQLDriver.php":2231856679,"src\/Credentials.php":1470751445,"src\/Result.php":1940786624,"src\/Connection.php":3154126645,"src\/Mock\/MockedDBALConnection.php":2847858253,"src\/Mock\/MockedDriver.php":1506357739,"tests\/ConnectionTest.php":1321659771,"tests\/SQLiteConnectionTest.php":715561380,"tests\/PostgreSQLConnectionTest.php":1654116774,"tests\/MysqlConnectionTest.php":1643302408}}
31 changes: 14 additions & 17 deletions src/Connection.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@
use Drift\DBAL\Driver\Driver;
use Drift\DBAL\Mock\MockedDBALConnection;
use Drift\DBAL\Mock\MockedDriver;
use React\Promise\PromiseInterface;
use function React\Promise\map;
use React\Promise\PromiseInterface;

/**
* Class Connection.
Expand Down Expand Up @@ -159,7 +159,7 @@ public function queryBySQL(string $sql, array $parameters = []): PromiseInterfac
}

/**
* Execute, sequentially, an array of sqls
* Execute, sequentially, an array of sqls.
*
* @param string[] $sqls
*
Expand All @@ -168,16 +168,16 @@ public function queryBySQL(string $sql, array $parameters = []): PromiseInterfac
public function executeSQLs(array $sqls): PromiseInterface
{
return
map($sqls, function(string $sql) {
map($sqls, function (string $sql) {
return $this->queryBySQL($sql);
})
->then(function() {
->then(function () {
return $this;
});
}

/**
* Execute an schema
* Execute an schema.
*
* @param Schema $schema
*
Expand All @@ -187,7 +187,7 @@ public function executeSchema(Schema $schema): PromiseInterface
{
return $this
->executeSQLs($schema->toSql($this->platform))
->then(function() {
->then(function () {
return $this;
});
}
Expand Down Expand Up @@ -262,7 +262,6 @@ public function insert(

/**
* @param string $table
* @param array $id
* @param array $values
*
* @return PromiseInterface
Expand All @@ -271,10 +270,9 @@ public function insert(
*/
public function delete(
string $table,
array $id,
array $values
): PromiseInterface {
if (empty($id)) {
if (empty($values)) {
throw InvalidArgumentException::fromEmptyCriteria();
}

Expand Down Expand Up @@ -348,7 +346,7 @@ public function upsert(
}

/**
* Table related shortcuts
* Table related shortcuts.
*/

/**
Expand All @@ -359,7 +357,7 @@ public function upsert(
* First field is considered as primary key.
*
* @param string $name
* @param array $fields
* @param array $fields
*
* @return PromiseInterface<Connection>
*
Expand All @@ -369,8 +367,7 @@ public function upsert(
public function createTable(
string $name,
array $fields
) : PromiseInterface
{
): PromiseInterface {
if (empty($fields)) {
throw InvalidArgumentException::fromEmptyFieldsArray();
}
Expand Down Expand Up @@ -398,11 +395,11 @@ public function createTable(
*
* @throws TableNotFoundException
*/
public function dropTable(string $name) : PromiseInterface
public function dropTable(string $name): PromiseInterface
{
return $this
->queryBySQL("DROP TABLE $name")
->then(function() {
->then(function () {
return $this;
});
}
Expand All @@ -414,15 +411,15 @@ public function dropTable(string $name) : PromiseInterface
*
* @throws TableNotFoundException
*/
public function truncateTable(string $name) : PromiseInterface
public function truncateTable(string $name): PromiseInterface
{
$truncateTableQuery = $this
->platform
->getTruncateTableSQL($name);

return $this
->queryBySQL($truncateTableQuery)
->then(function() {
->then(function () {
return $this;
});
}
Expand Down
38 changes: 36 additions & 2 deletions tests/ConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ protected function createInfrastructure(Connection $connection): PromiseInterfac
->createTable('test', [
'id' => 'string',
'field1' => 'string',
'field2' => 'string'
'field2' => 'string',
])
->otherwise(function(TableExistsException $_) use ($connection) {
->otherwise(function (TableExistsException $_) use ($connection) {
// Silent pass

return $connection;
Expand Down Expand Up @@ -412,4 +412,38 @@ public function testUpsert()

await($promise, $loop, self::MAX_TIMEOUT);
}

/**
* Test delete.
*/
public function testDelete()
{
$loop = $this->createLoop();
$connection = $this->getConnection($loop);
$promise = $this
->resetInfrastructure($connection)
->then(function (Connection $connection) {
return $connection->insert('test', [
'id' => '1',
'field1' => 'val1',
'field2' => 'val2',
]);
})
->then(function () use ($connection) {
return $connection->delete(
'test',
['id' => '1']
);
})
->then(function () use ($connection) {
return $connection->findOneBy('test', [
'id' => '1',
]);
})
->then(function ($result) {
$this->assertNull($result);
});

await($promise, $loop, self::MAX_TIMEOUT);
}
}
2 changes: 0 additions & 2 deletions tests/MysqlConnectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,11 @@

namespace Drift\DBAL\Tests;

use Doctrine\DBAL\Exception\TableNotFoundException;
use Doctrine\DBAL\Platforms\MySqlPlatform;
use Drift\DBAL\Connection;
use Drift\DBAL\Credentials;
use Drift\DBAL\Driver\Mysql\MysqlDriver;
use React\EventLoop\LoopInterface;
use React\Promise\PromiseInterface;

/**
* Class MysqlConnectionTest.
Expand Down

0 comments on commit 413566d

Please sign in to comment.