Browse Source

Merge pull request #4153 from markstory/issue-4113

Fix a few issues
José Lorenzo Rodríguez 11 years ago
parent
commit
becc9aad92

+ 50 - 23
src/Console/Templates/default/classes/table.ctp

@@ -75,29 +75,56 @@ $key = array_map(function($el) { return "'$el'"; }, (array)$primaryKey);
  */
 	public function validationDefault(Validator $validator) {
 		$validator
-<?php $countValidation = count($validation) - 1; ?>
-<?php $i = 0; ?>
-<?php foreach ($validation as $field => $rules): ?>
-<?php foreach ($rules as $ruleName => $rule): ?>
-<?php if ($rule['rule'] && !isset($rule['provider'])): ?>
-			->add('<?= $field ?>', '<?= $ruleName ?>', ['rule' => '<?= $rule['rule'] ?>'])
-<?php elseif ($rule['rule'] && isset($rule['provider'])): ?>
-			->add('<?= $field ?>', '<?= $ruleName ?>', ['rule' => '<?= $rule['rule'] ?>', 'provider' => '<?= $rule['provider'] ?>'])
-<?php endif; ?>
-<?php if (isset($rule['allowEmpty'])) : ?>
-<?php if (is_string($rule['allowEmpty'])): ?>
-			->allowEmpty('<?= $field ?>', '<?= $rule['allowEmpty'] ?>')<?= $i === $countValidation ? ";\n" : "\n" ?>
-<?php elseif ($rule['allowEmpty']): ?>
-			->allowEmpty('<?= $field ?>')<?= $i === $countValidation ? ";\n" : "\n" ?>
-<?php else: ?>
-			->validatePresence('<?= $field ?>', 'create')
-			->notEmpty('<?= $field ?>')<?= $i === $countValidation ? ";\n" : "\n" ?>
-<?php endif ?>
-<?php endif ?>
-<?php endforeach ?>
-<?php $i++; ?>
-<?php endforeach ?>
-<?php echo "\n"; ?>
+<?php $validationMethods = []; ?>
+<?php
+foreach ($validation as $field => $rules):
+	foreach ($rules as $ruleName => $rule):
+		if ($rule['rule'] && !isset($rule['provider'])):
+			$validationMethods[] = sprintf(
+				"->add('%s', '%s', ['rule' => '%s'])",
+				$field,
+				$ruleName,
+				$rule['rule']
+			);
+		elseif ($rule['rule'] && isset($rule['provider'])):
+			$validationMethods[] = sprintf(
+				"->add('%s', '%s', ['rule' => '%s', 'provider' => '%s'])",
+				$field,
+				$ruleName,
+				$rule['rule'],
+				$rule['provider']
+			);
+		endif;
+
+		if (isset($rule['allowEmpty'])):
+			if (is_string($rule['allowEmpty'])):
+				$validationMethods[] = sprintf(
+					"->allowEmpty('%s', '%s')",
+					$field,
+					$rule['allowEmpty']
+				);
+			elseif ($rule['allowEmpty']):
+				$validationMethods[] = sprintf(
+					"->allowEmpty('%s')",
+					$field
+				);
+			else:
+				$validationMethods[] = sprintf(
+					"->validatePresence('%s', 'create')",
+					$field
+				);
+				$validationMethods[] = sprintf(
+					"->notEmpty('%s')",
+					$field
+				);
+			endif;
+		endif;
+	endforeach;
+endforeach;
+?>
+<?= "\t\t\t" . implode("\n\t\t\t", $validationMethods) . ";" ?>
+
+
 		return $validator;
 	}
 <?php endif ?>

+ 7 - 2
src/TestSuite/TestCase.php

@@ -16,6 +16,7 @@ namespace Cake\TestSuite;
 
 use Cake\Core\App;
 use Cake\Core\Configure;
+use Cake\Datasource\ConnectionManager;
 use Cake\ORM\TableRegistry;
 use Cake\Routing\Router;
 use Cake\Utility\Inflector;
@@ -543,10 +544,14 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase {
 			$options['className'] = $className;
 		}
 
+		$connectionName = $options['className']::defaultConnectionName();
+		$connection = ConnectionManager::get($connectionName);
+
 		list($plugin, $baseClass) = pluginSplit($alias);
-		$options += ['alias' => $baseClass] + TableRegistry::config($alias);
+		$options += ['alias' => $baseClass, 'connection' => $connection];
+		$options += TableRegistry::config($alias);
 
-		$mock = $this->getMock($options['className'], $methods, array($options));
+		$mock = $this->getMock($options['className'], $methods, [$options]);
 		TableRegistry::set($alias, $mock);
 		return $mock;
 	}

+ 6 - 30
tests/TestCase/TestSuite/TestCaseTest.php

@@ -30,27 +30,6 @@ use Cake\Test\Fixture\FixturizedTestCase;
 class TestCaseTest extends TestCase {
 
 /**
- * setUp
- *
- * @return void
- */
-	public function setUp() {
-		parent::setUp();
-		$this->Reporter = $this->getMock('Cake\TestSuite\Reporter\HtmlReporter');
-	}
-
-/**
- * tearDown
- *
- * @return void
- */
-	public function tearDown() {
-		parent::tearDown();
-		unset($this->Result);
-		unset($this->Reporter);
-	}
-
-/**
  * testAssertTags
  *
  * @return void
@@ -332,17 +311,14 @@ class TestCaseTest extends TestCase {
 		$this->assertNull($Posts->table());
 
 		$Posts = $this->getMockForModel('Posts', array('save'));
-
-		$this->assertNull($Posts->save($entity));
-
 		$Posts->expects($this->at(0))
 			->method('save')
-			->will($this->returnValue(true));
-		$Posts->expects($this->at(1))
-			->method('save')
-			->will($this->returnValue(false));
-		$this->assertTrue($Posts->save($entity));
-		$this->assertFalse($Posts->save($entity));
+			->will($this->returnValue('mocked'));
+		$this->assertEquals('mocked', $Posts->save($entity));
+
+		$Posts = $this->getMockForModel('Posts', ['doSomething']);
+		$this->assertInstanceOf('Cake\Database\Connection', $Posts->connection());
+		$this->assertEquals('test', $Posts->connection()->configName());
 	}
 
 /**