Page MenuHomePhorge

final class PhutilUtilsTestCase
libphutil Technical Documentation (Core Utilities)

Test cases for functions in utils.php.

Tasks

Making Test Assertions

  • final protected function assertFalse($result, $message) — Assert that a value is `false`, strictly. The test fails if it is not.
  • final protected function assertTrue($result, $message) — Assert that a value is `true`, strictly. The test fails if it is not.
  • final protected function assertEqual($expect, $result, $message) — Assert that two values are equal, strictly. The test fails if they are not.
  • final protected function assertFailure($message) — Assert an unconditional failure. This is just a convenience method that better indicates intent than using dummy values with assertEqual(). This causes test failure.
  • final protected function assertSkipped($message) — End this test by asserting that the test should be skipped for some reason.

Exception Handling

  • final protected function assertException($expected_exception_class, $callable) — This simplest way to assert exceptions are thrown.
  • final protected function tryTestCases($inputs, $expect, $callable, $exception_class) — Straightforward method for writing unit tests which check if some block of code throws an exception. For example, this allows you to test the exception behavior of ##is_a_fruit()## on various inputs:
  • final protected function tryTestCaseMap($map, $callable, $exception_class) — Convenience wrapper around @{method:tryTestCases} for cases where your inputs are scalar. For example:

Hooks for Setup and Teardown

  • protected function willRunTests() — This hook is invoked once, before any tests in this class are run. It gives you an opportunity to perform setup steps for the entire class.
  • protected function didRunTests() — This hook is invoked once, after any tests in this class are run. It gives you an opportunity to perform teardown steps for the entire class.
  • protected function willRunOneTest($test_method_name) — This hook is invoked once per test, before the test method is invoked.
  • protected function didRunOneTest($test_method_name) — This hook is invoked once per test, after the test method is invoked.
  • public function willRunTestCases($test_cases) — This hook is invoked once, before any test cases execute. It gives you an opportunity to perform setup steps for the entire suite of test cases.
  • public function didRunTestCases($test_cases) — This hook is invoked once, after all test cases execute.

Internals

  • final public function __construct() — Construct a new test case. This method is ##final##, use willRunTests() to provide test-wide setup logic.
  • private function failTest($reason) — Mark the currently-running test as a failure.
  • private function passTest($reason) — This was a triumph. I'm making a note here: HUGE SUCCESS.
  • private function skipTest($reason) — Mark the current running test as skipped.
  • final public function run() — Execute the tests in this test case. You should not call this directly; use @{class:PhutilUnitTestEngine} to orchestrate test execution.
  • private function failAssertionWithExpectedValue($expect_description, $actual_result, $message) — Fail an assertion which checks that some result is equal to a specific value, like 'true' or 'false'. This prints a readable error message and fails the current test.

Other Methods

Methods

public function __get($name)
Inherited

This method is not documented.
Parameters
$name
Return
wild

public function __set($name, $value)
Inherited

This method is not documented.
Parameters
$name
$value
Return
wild

public function current()
Inherited

This method is not documented.
Return
wild

public function key()
Inherited

This method is not documented.
Return
wild

public function next()
Inherited

This method is not documented.
Return
wild

public function rewind()
Inherited

This method is not documented.
Return
wild

public function valid()
Inherited

This method is not documented.
Return
wild

private function throwOnAttemptedIteration()
Inherited

This method is not documented.
Return
wild

public function getPhobjectClassConstant($key, $byte_limit)
Inherited

Phobject

Read the value of a class constant.

This is the same as just typing self::CONSTANTNAME, but throws a more useful message if the constant is not defined and allows the constant to be limited to a maximum length.

Parameters
string$keyName of the constant.
int|null$byte_limitMaximum number of bytes permitted in the value.
Return
stringValue of the constant.

final protected function assertFalse($result, $message)
Inherited

PhutilTestCase

Assert that a value is false, strictly. The test fails if it is not.

Parameters
wild$resultThe empirically derived value, generated by executing the test.
string$messageA human-readable description of what these values represent, and particularly of what a discrepancy means.
Return
void

final protected function assertTrue($result, $message)
Inherited

PhutilTestCase

Assert that a value is true, strictly. The test fails if it is not.

Parameters
wild$resultThe empirically derived value, generated by executing the test.
string$messageA human-readable description of what these values represent, and particularly of what a discrepancy means.
Return
void

final protected function assertEqual($expect, $result, $message)
Inherited

PhutilTestCase

Assert that two values are equal, strictly. The test fails if they are not.

NOTE: This method uses PHP's strict equality test operator (===) to compare values. This means values and types must be equal, key order must be identical in arrays, and objects must be referentially identical.
Parameters
wild$expectThe theoretically expected value, generated by careful reasoning about the properties of the system.
wild$resultThe empirically derived value, generated by executing the test.
string$messageA human-readable description of what these values represent, and particularly of what a discrepancy means.
Return
void

final protected function assertFailure($message)
Inherited

PhutilTestCase

Assert an unconditional failure. This is just a convenience method that better indicates intent than using dummy values with assertEqual(). This causes test failure.

Parameters
string$messageHuman-readable description of the reason for test failure.
Return
void

final protected function assertSkipped($message)
Inherited

PhutilTestCase

End this test by asserting that the test should be skipped for some reason.

Parameters
string$messageReason for skipping this test.
Return
void

final protected function assertCaught($expect, $actual, $message)
Inherited

This method is not documented.
Parameters
$expect
$actual
$message
Return
wild

final protected function assertException($expected_exception_class, $callable)
Inherited

PhutilTestCase

This simplest way to assert exceptions are thrown.

Parameters
exception$expected_exception_classThe expected exception.
callable$callableThe thing which throws the exception.
Return
void

final protected function tryTestCases($inputs, $expect, $callable, $exception_class)
Inherited

PhutilTestCase

Straightforward method for writing unit tests which check if some block of code throws an exception. For example, this allows you to test the exception behavior of is_a_fruit() on various inputs:

public function testFruit() {
  $this->tryTestCases(
    array(
      'apple is a fruit'    => new Apple(),
      'rock is not a fruit' => new Rock(),
    ),
    array(
      true,
      false,
    ),
    array($this, 'tryIsAFruit'),
    'NotAFruitException');
}

protected function tryIsAFruit($input) {
  is_a_fruit($input);
}
Parameters
map$inputsMap of test case labels to test case inputs.
list$expectList of expected results, true to indicate that the case is expected to succeed and false to indicate that the case is expected to throw.
callable$callableCallback to invoke for each test case.
string$exception_classOptional exception class to catch, defaults to 'Exception'.
Return
void

final protected function tryTestCaseMap($map, $callable, $exception_class)
Inherited

PhutilTestCase

Convenience wrapper around tryTestCases() for cases where your inputs are scalar. For example:

public function testFruit() {
  $this->tryTestCaseMap(
    array(
      'apple' => true,
      'rock'  => false,
    ),
    array($this, 'tryIsAFruit'),
    'NotAFruitException');
}

protected function tryIsAFruit($input) {
  is_a_fruit($input);
}

For cases where your inputs are not scalar, use tryTestCases().

Parameters
map$mapMap of scalar test inputs to expected success (true expects success, false expects an exception).
callable$callableCallback to invoke for each test case.
string$exception_classOptional exception class to catch, defaults to 'Exception'.
Return
void

protected function willRunTests()
Inherited

PhutilTestCase

This hook is invoked once, before any tests in this class are run. It gives you an opportunity to perform setup steps for the entire class.

Return
void

protected function didRunTests()
Inherited

PhutilTestCase

This hook is invoked once, after any tests in this class are run. It gives you an opportunity to perform teardown steps for the entire class.

Return
void

protected function willRunOneTest($test_method_name)
Inherited

PhutilTestCase

This hook is invoked once per test, before the test method is invoked.

Parameters
string$test_method_nameMethod name of the test which will be invoked.
Return
void

protected function didRunOneTest($test_method_name)
Inherited

PhutilTestCase

This hook is invoked once per test, after the test method is invoked.

Parameters
string$test_method_nameMethod name of the test which was invoked.
Return
void

public function willRunTestCases($test_cases)
Inherited

PhutilTestCase

This hook is invoked once, before any test cases execute. It gives you an opportunity to perform setup steps for the entire suite of test cases.

Parameters
list<PhutilTestCase>$test_casesList of test cases to be run.
Return
void

public function didRunTestCases($test_cases)
Inherited

PhutilTestCase

This hook is invoked once, after all test cases execute.

Parameters
list<PhutilTestCase>$test_casesList of test cases that ran.
Return
void

final public function __construct()
Inherited

PhutilTestCase

Construct a new test case. This method is final, use willRunTests() to provide test-wide setup logic.

Return
this//Implicit.//

private function failTest($reason)
Inherited

PhutilTestCase

Mark the currently-running test as a failure.

Parameters
string$reasonHuman-readable description of problems.
Return
void

private function passTest($reason)
Inherited

PhutilTestCase

This was a triumph. I'm making a note here: HUGE SUCCESS.

Parameters
string$reasonHuman-readable overstatement of satisfaction.
Return
void

private function skipTest($reason)
Inherited

PhutilTestCase

Mark the current running test as skipped.

Parameters
string$reasonDescription for why this test was skipped.
Return
void

private function resultTest($test_result, $reason)
Inherited

This method is not documented.
Parameters
$test_result
$reason
Return
wild

final public function run()
Inherited

PhutilTestCase

Execute the tests in this test case. You should not call this directly; use PhutilUnitTestEngine to orchestrate test execution.

Return
void

final public function setEnableCoverage($enable_coverage)
Inherited

This method is not documented.
Parameters
$enable_coverage
Return
wild

private function beginCoverage()
Inherited

This method is not documented.
Return
wild

private function endCoverage()
Inherited

This method is not documented.
Return
wild

private function assertCoverageAvailable()
Inherited

This method is not documented.
Return
wild

final public function getWorkingCopy()
Inherited

This method is not documented.
Return
wild

final public function setWorkingCopy($working_copy)
Inherited

This method is not documented.
Parameters
ArcanistWorkingCopyIdentity$working_copy
Return
wild

final public function getProjectRoot()
Inherited

This method is not documented.
Return
wild

final public function setPaths($paths)
Inherited

This method is not documented.
Parameters
array$paths
Return
wild

final protected function getLink($method)
Inherited

This method is not documented.
Parameters
$method
Return
wild

final public function setRenderer($renderer)
Inherited

This method is not documented.
Parameters
ArcanistUnitRenderer$renderer
Return
wild

private static function getCallerInfo()
Inherited

PhutilTestCase

Returns info about the caller function.

Return
map

private function failAssertionWithExpectedValue($expect_description, $actual_result, $message)
Inherited

PhutilTestCase

Fail an assertion which checks that some result is equal to a specific value, like 'true' or 'false'. This prints a readable error message and fails the current test.

This method throws and does not return.

Parameters
string$expect_descriptionHuman readable description of the expected value.
string$actual_resultThe actual value.
string|null$messageOptional assertion message.
Return
void

final protected function assertExecutable($binary)
Inherited

This method is not documented.
Parameters
$binary
Return
wild

final protected function getSupportExecutable($executable)
Inherited

This method is not documented.
Parameters
$executable
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild
This method is not documented.
Return
wild

public function testNonempty()

This method is not documented.
Return
wild

protected function tryAssertInstancesOfArray($input)

This method is not documented.
Parameters
$input
Return
wild

protected function tryAssertInstancesOfStdClass($input)

This method is not documented.
Parameters
$input
Return
wild

public function testAssertInstancesOf()

This method is not documented.
Return
wild

public function testAssertSameKeys()

This method is not documented.
Return
wild

public function testAssertStringLike()

This method is not documented.
Return
wild

public function testCoalesce()

This method is not documented.
Return
wild

public function testHeadLast()

This method is not documented.
Return
wild

public function testHeadKeyLastKey()

This method is not documented.
Return
wild

public function testID()

This method is not documented.
Return
wild

public function testIdx()

This method is not documented.
Return
wild

public function testSplitLines()

This method is not documented.
Return
wild

public function testArrayFuse()

This method is not documented.
Return
wild

public function testArrayInterleave()

This method is not documented.
Return
wild

public function testLoggableString()

This method is not documented.
Return
wild

public function testPhutilUnits()

This method is not documented.
Return
wild

public function testPhutilJSONDecode()

This method is not documented.
Return
wild

public function testPhutilINIDecode()

This method is not documented.
Return
wild

public function testCensorCredentials()

This method is not documented.
Return
wild

public function testVarExport()

This method is not documented.
Return
wild

public function testFnmatch()

This method is not documented.
Return
wild

public function testJSONEncode()

This method is not documented.
Return
wild

public function testHashComparisons()

This method is not documented.
Return
wild

public function testVectorSortInt()

This method is not documented.
Return
wild

public function testVectorSortString()

This method is not documented.
Return
wild

private function shuffleMap($map)

This method is not documented.
Parameters
array$map
Return
wild

public function testQueryStringEncoding()

This method is not documented.
Return
wild

public function testNaturalList()

This method is not documented.
Return
wild

public function testArrayPartition()

This method is not documented.
Return
wild

public function testEmptyStringMethods()

This method is not documented.
Return
wild

private function executeEmptyStringTest($input, $expect, $call, $name)

This method is not documented.
Parameters
$input
$expect
$call
$name
Return
wild