/** * boolValue() をテストします. * 以下を確認します. * * - "T", "Y", "O" (大小問わず) で始まる文字列は true を返す. * - "F", "N" (大小問わず) で始まる文字列は false を返す. * * @covers Peach\Util\Values::boolValue * @covers Peach\Util\Values::handleBoolValue * @covers Peach\Util\Values::stringToBool */ public function testBoolValue() { // "T", "Y", "O" で始まる文字列と 0 以外の数値, TRUE は常に TRUE を返す $okList = array("test", "True", "yes", "Young", "orz", "OK", true, 1.5, -10); foreach ($okList as $value) { $this->assertTrue(Values::boolValue($value)); $this->assertTrue(Values::boolValue($value, true)); $this->assertTrue(Values::boolValue($value, false)); } // "F", "N" で始まる文字列と 0, FALSE は常に FALSE を返す $ngList = array("false", "FOX", "NG", "no", false, 0, 0.0); foreach ($ngList as $value) { $this->assertFalse(Values::boolValue($value)); $this->assertFalse(Values::boolValue($value, true)); $this->assertFalse(Values::boolValue($value, false)); } // それ以外の文字列, 型の場合は $defaultValue に応じて返り値が決まる // $defaultValue が未指定の場合はキャストした結果となる $castTrue = array("ABC", array(0, 0, 0), new \stdClass()); foreach ($castTrue as $value) { $this->assertTrue(Values::boolValue($value)); $this->assertTrue(Values::boolValue($value, true)); $this->assertFalse(Values::boolValue($value, false)); } $castFalse = array("0", "", null, array()); foreach ($castFalse as $value) { $this->assertFalse(Values::boolValue($value)); $this->assertTrue(Values::boolValue($value, true)); $this->assertFalse(Values::boolValue($value, false)); } }