/** * @test * @covers PhpValueObjects\Common\StringValue::toNative() */ public function canConvertStringValueObjectToNativeString() { $value = 'Test'; $string = new StringValue($value); $this->assertThat($string->toNative(), $this->isType('string'), 'Is a native string'); $this->assertEquals($value, $string->toNative(), 'Native value string matches'); }
/** @test */ public function reportsTrueWhenTwoValuesAreTheSame() { $string1 = new StringValue('Test'); $string2 = new StringValue('Test'); $criteria = new IsSameScalarValue($string1->toNative(), $string2->toNative()); $this->assertTrue($criteria->isSatisfied()); }
/** * @test * @covers PhpValueObjects\Common\Validation\Validator */ public function cannotValidateWhenOneElementOfMultipleCriteriaIsNotMet() { $string1 = new StringValue('Test'); $string2 = new StringValue('Another Test'); $spec1 = new IsSameClass($string1, $string2); $spec2 = new IsSameScalarValue($string1->toNative(), $string2->toNative()); $this->assertFalse(Validator::matchesSpecification($spec1, $spec2), "Unmet multiple criteria doesn't validate"); }