<?php namespace nur\sery\php\access; use nulib\tests\TestCase; use nur\sery\wip\php\access\ValueAccess; use stdClass; class ValueAccessTest extends TestCase { function testAccess() { $default = new stdClass(); # $i = null; $a = new ValueAccess($i); self::assertFalse($a->exists()); self::assertFalse($a->available()); self::assertSame($default, $a->get($default)); $i = false; $a = new ValueAccess($i); self::assertTrue($a->exists()); self::assertTrue($a->available()); self::assertSame(false, $a->get($default)); $i = ""; $a = new ValueAccess($i); self::assertTrue($a->exists()); self::assertTrue($a->available()); self::assertSame("", $a->get($default)); # $i = null; $a = new ValueAccess($i, ["allow_null" => false]); self::assertFalse($a->exists()); self::assertFalse($a->available()); self::assertSame($default, $a->get($default)); $i = null; $a = new ValueAccess($i, ["allow_null" => true]); self::assertTrue($a->exists()); self::assertTrue($a->available()); self::assertSame(null, $a->get($default)); # $i = false; $a = new ValueAccess($i, ["allow_false" => false]); self::assertTrue($a->exists()); self::assertFalse($a->available()); self::assertSame($default, $a->get($default)); $i = false; $a = new ValueAccess($i, ["allow_false" => true]); self::assertTrue($a->exists()); self::assertTrue($a->available()); self::assertSame(false, $a->get($default)); # $i = ""; $a = new ValueAccess($i, ["allow_empty" => false]); self::assertTrue($a->exists()); self::assertFalse($a->available()); self::assertSame($default, $a->get($default)); $i = ""; $a = new ValueAccess($i, ["allow_empty" => true]); self::assertTrue($a->exists()); self::assertTrue($a->available()); self::assertSame("", $a->get($default)); } }