/** * Test basic methods. * @covers Rentalhost\VanillaValidation\Validation::__construct * @covers Rentalhost\VanillaValidation\Validation::__clone * @covers Rentalhost\VanillaValidation\Validation::field * @covers Rentalhost\VanillaValidation\Validation::validate * @covers Rentalhost\VanillaValidation\Validation::overwriteWith * @covers Rentalhost\VanillaValidation\Validation::test * @covers Rentalhost\VanillaValidation\Validation::testWith */ public function testBasic() { $validation = new Validation(); $validation->field('username', 'user')->required(false)->string(); $validation->field('password', 'pass')->required(false)->string(); $validationResult = $validation->validate(); // Default validation test. static::assertInstanceOf(ValidationResult::class, $validationResult); static::assertTrue($validationResult->isSuccess()); static::assertCount(0, $validationResult->getFails()); static::assertCount(4, $validationResult->getSuccesses()); // Success test. static::assertTrue($validation->test()); static::assertTrue($validation->test($validationResult)); static::assertInstanceOf(ValidationResult::class, $validationResult); static::assertTrue($validationResult->isSuccess()); static::assertCount(0, $validationResult->getFails()); static::assertCount(4, $validationResult->getSuccesses()); // Fail. $validationResult = $validation->validate(['username' => null]); static::assertFalse($validationResult->isSuccess()); static::assertCount(2, $validationResult->getFails()); static::assertCount(2, $validationResult->getSuccesses()); // Reference test (again success). static::assertTrue($validation->test()); static::assertTrue($validation->test($validationResult)); static::assertTrue($validationResult->isSuccess()); static::assertCount(0, $validationResult->getFails()); static::assertCount(4, $validationResult->getSuccesses()); // Reference test (now fail). static::assertFalse($validation->testWith(['username' => null])); static::assertFalse($validation->testWith(['username' => null], $validationResult)); static::assertFalse($validationResult->isSuccess()); static::assertCount(2, $validationResult->getFails()); static::assertCount(2, $validationResult->getSuccesses()); }