{"id":27091746,"url":"https://github.com/dgame/php-expectation","last_synced_at":"2025-09-01T06:33:44.993Z","repository":{"id":56967360,"uuid":"89742806","full_name":"Dgame/php-expectation","owner":"Dgame","description":null,"archived":false,"fork":false,"pushed_at":"2019-07-31T20:24:27.000Z","size":29,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-23T21:49:33.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dgame.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-28T20:34:34.000Z","updated_at":"2019-07-31T20:24:28.000Z","dependencies_parsed_at":"2022-08-21T09:50:43.287Z","dependency_job_id":null,"html_url":"https://github.com/Dgame/php-expectation","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Dgame/php-expectation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dgame%2Fphp-expectation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dgame%2Fphp-expectation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dgame%2Fphp-expectation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dgame%2Fphp-expectation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dgame","download_url":"https://codeload.github.com/Dgame/php-expectation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dgame%2Fphp-expectation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273082421,"owners_count":25042282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-06T07:53:34.311Z","updated_at":"2025-09-01T06:33:44.951Z","avatar_url":"https://github.com/Dgame.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# php-expectation\n\n[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Dgame/php-expectation/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/Dgame/php-expectation/?branch=master)\n[![Code Coverage](https://scrutinizer-ci.com/g/Dgame/php-expectation/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/Dgame/php-expectation/?branch=master)\n[![Build Status](https://scrutinizer-ci.com/g/Dgame/php-expectation/badges/build.png?b=master)](https://scrutinizer-ci.com/g/Dgame/php-expectation/build-status/master)\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/35671c67-e23e-4a58-8d81-dcc47ed87b5b/mini.png)](https://insight.sensiolabs.com/projects/35671c67-e23e-4a58-8d81-dcc47ed87b5b)\n[![StyleCI](https://styleci.io/repos/89742806/shield?branch=master)](https://styleci.io/repos/89742806)\n[![Build Status](https://travis-ci.org/Dgame/php-expectation.svg?branch=master)](https://travis-ci.org/Dgame/php-expectation)\n\n----\n\nBind expectations to your values and offer default values if the expectation don't apply.\n\n## isInt\n```php\n$this-\u003eassertEquals(42, expect(42)-\u003eisInt()-\u003eelse(23));\n$this-\u003eassertEquals(1337, expect('foo')-\u003eisInt()-\u003eelse(1337));\n```\n\n## isFloat\n```php\n$this-\u003eassertEquals(4.2, expect(4.2)-\u003eisFloat()-\u003eelse(2.3));\n$this-\u003eassertEquals(13.37, expect('foo')-\u003eisFloat()-\u003eelse(13.37));\n```\n\n## isScalar\n```php\n$this-\u003eassertEquals('bar', expect('bar')-\u003eisScalar()-\u003eelse('foo'));\n$this-\u003eassertEquals(42, expect(42)-\u003eisScalar()-\u003eelse('bar'));\n```\n\n## isNumeric\n```php\n$this-\u003eassertEquals(42, expect(42)-\u003eisNumeric()-\u003eelse('foo'));\n$this-\u003eassertEquals('1337', expect('1337')-\u003eisNumeric()-\u003eelse('bar'));\n```\n\n## isString\n```php\n$this-\u003eassertEquals('foo', expect('foo')-\u003eisString()-\u003eelse('bar'));\n$this-\u003eassertEquals('bar', expect(42)-\u003eisString()-\u003eelse('bar'));\n```\n\n## isBool\n```php\n$this-\u003eassertTrue(expect(true)-\u003eisBool()-\u003eelse(false));\n$this-\u003eassertFalse(expect(1)-\u003eisBool()-\u003eelse(false));\n```\n\n## isArray\n```php\n$this-\u003eassertEquals([1, 2, 3], expect([1, 2, 3])-\u003eisArray()-\u003eelse([]));\n$this-\u003eassertEquals([2], expect('abc')-\u003eisArray()-\u003eelse([2]));\n$this-\u003eassertEquals([], expect(null)-\u003eisArray()-\u003eelse([]));\n```\n\n## isObject\n```php\n$this-\u003eassertEquals($this, expect($this)-\u003eisObject()-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(null)-\u003eisObject()-\u003eelse(null));\n$this-\u003eassertEquals(23, expect(42)-\u003eisObject()-\u003eelse(23));\n```\n\n## isInstanceOf\n```php\n$this-\u003eassertEquals($this, expect($this)-\u003eisInstanceOf(self::class)-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(new Exception())-\u003eisInstanceOf(self::class)-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(null)-\u003eisInstanceOf(self::class)-\u003eelse(null));\n```\n\n## isCallable\n```php\n$this-\u003eassertEquals('trim', expect('trim')-\u003eisCallable()-\u003eelse(null));\n$this-\u003eassertEquals(null, expect('empty')-\u003eisCallable()-\u003eelse(null));\n```\n\n## isDir\n```php\n$this-\u003eassertEquals(__DIR__, expect(__DIR__)-\u003eisDir()-\u003eelse('src'));\n$this-\u003eassertEquals('src', expect('test')-\u003eisDir()-\u003eelse('src'));\n```\n\n## isFile\n```php\n$this-\u003eassertEquals(__FILE__, expect(__FILE__)-\u003eisFile()-\u003eelse(null));\n$this-\u003eassertEquals(null, expect('src')-\u003eisFile()-\u003eelse(null));\n```\n\n## isEmpty\n```php\n$this-\u003eassertEmpty(expect(null)-\u003eisEmpty()-\u003eelse('abc'));\n$this-\u003eassertNull(expect('abc')-\u003eisEmpty()-\u003eelse(null));\n```\n\n## isNotEmpty\n```php\n$this-\u003eassertNotEmpty(expect(null)-\u003eisNotEmpty()-\u003eelse('abc'));\n$this-\u003eassertNotNull(expect('abc')-\u003eisNotEmpty()-\u003eelse(null));\n```\n\n## isNull\n```php\n$this-\u003eassertNull(expect(null)-\u003eisNull()-\u003eelse('abc'));\n$this-\u003eassertEquals('foobar', expect('abc')-\u003eisNull()-\u003eelse('foobar'));\n```\n\n## isNotNull\n```php\n$this-\u003eassertNotNull(expect(null)-\u003eisNotNull()-\u003eelse('abc'));\n$this-\u003eassertNull(expect(null)-\u003eisNotNull()-\u003eelse(null));\n```\n\n## isTrue\n```php\n$this-\u003eassertTrue(expect(false)-\u003eisTrue()-\u003eelse(true));\n$this-\u003eassertTrue(expect(true)-\u003eisTrue()-\u003eelse(false));\n$this-\u003eassertFalse(expect(false)-\u003eisTrue()-\u003eelse(false));\n```\n\n## isFalse\n```php\n$this-\u003eassertFalse(expect(false)-\u003eisFalse()-\u003eelse(true));\n$this-\u003eassertFalse(expect(true)-\u003eisFalse()-\u003eelse(false));\n$this-\u003eassertTrue(expect(true)-\u003eisFalse()-\u003eelse(true));\n```\n\n## isEqual\n```php\n$this-\u003eassertEquals('abc', expect('abc')-\u003eisEqual('abc')-\u003eelse('foo'));\n$this-\u003eassertEquals('42', expect('42')-\u003eisEqual('42')-\u003eelse(null));\n$this-\u003eassertEquals(42, expect('42')-\u003eisEqual(42)-\u003eelse(null));\n```\n\n## isNotEqual\n```php\n$this-\u003eassertEquals('foo', expect('abc')-\u003eisNotEqual('abc')-\u003eelse('foo'));\n$this-\u003eassertEquals(null, expect('42')-\u003eisNotEqual('42')-\u003eelse(null));\n$this-\u003eassertEquals(42, expect('42')-\u003eisEqual(42)-\u003eelse(null));\n```\n\n## isIdenticalTo\n```php\n$this-\u003eassertEquals('abc', expect('abc')-\u003eisIdenticalTo('abc')-\u003eelse('foo'));\n$this-\u003eassertEquals('42', expect('42')-\u003eisIdenticalTo('42')-\u003eelse(null));\n$this-\u003eassertEquals(null, expect('42')-\u003eisIdenticalTo(42)-\u003eelse(null));\n$this-\u003eassertEquals(42, expect(42)-\u003eisIdenticalTo(42)-\u003eelse(null));\n```\n\n## isNotIdenticalTo\n```php\n$this-\u003eassertEquals('foo', expect('abc')-\u003eisNotIdenticalTo('abc')-\u003eelse('foo'));\n$this-\u003eassertEquals(null, expect('42')-\u003eisNotIdenticalTo('42')-\u003eelse(null));\n$this-\u003eassertEquals('42', expect('42')-\u003eisNotIdenticalTo(42)-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(42)-\u003eisNotIdenticalTo(42)-\u003eelse(null));\n```\n\n## isBetween\n```php\n$this-\u003eassertEquals(7, expect(7)-\u003eisBetween(0, 8)-\u003eelse(null));\n$this-\u003eassertEquals(7, expect(7)-\u003eisBetween(0, 7)-\u003eelse(null));\n$this-\u003eassertEquals(0, expect(0)-\u003eisBetween(0, 7)-\u003eelse(null));\n$this-\u003eassertEquals('nope', expect(12)-\u003eisBetween(15, 20)-\u003eelse('nope'));\n```\n\n## hasLength\n```php\n$this-\u003eassertEquals('foo', expect('foo')-\u003ehasLength(3)-\u003eelse('aye'));\n$this-\u003eassertEquals('nope', expect('foobar')-\u003ehasLength(4)-\u003eelse('nope'));\n\n$this-\u003eassertEquals([1, 2, 3], expect([1, 2, 3])-\u003ehasLength(3)-\u003eelse([]));\n$this-\u003eassertEquals([42, 23], expect([])-\u003ehasLength(2)-\u003eelse([42, 23]));\n```\n\n## isIn\n```php\n$this-\u003eassertEquals(42, expect(42)-\u003eisIn([1, 2, 23, 36, 42, 44, 48])-\u003eelse(null));\n$this-\u003eassertEquals(42, expect(42)-\u003eisIn([1, 2, 23, 36, 42])-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(42)-\u003eisIn([1, 2, 23, 36])-\u003eelse(null));\n```\n\n## isKeyOf\n```php\n$this-\u003eassertEquals('foo', expect('foo')-\u003eisKeyOf(['a' =\u003e 23, 'foo' =\u003e 42])-\u003eelse(null));\n$this-\u003eassertEquals(null, expect('foo')-\u003eisKeyOf(['a' =\u003e 23])-\u003eelse(null));\n```\n\n## isBelow\n```php\n$this-\u003eassertEquals(3, expect(3)-\u003eisBelow(4)-\u003eelse(42));\n$this-\u003eassertEquals(42, expect(6)-\u003eisBelow(4)-\u003eelse(42));\n```\n\n## isAbove\n```php\n$this-\u003eassertEquals(42, expect(3)-\u003eisAbove(4)-\u003eelse(42));\n$this-\u003eassertEquals(6, expect(6)-\u003eisAbove(4)-\u003eelse(42));\n```\n\n## isBelowOrEqual\n```php\n$this-\u003eassertEquals(23, expect(23)-\u003eisBelowOrEqual(23)-\u003eelse(null));\n$this-\u003eassertEquals(23, expect(23)-\u003eisBelowOrEqual(42)-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(23)-\u003eisBelowOrEqual(22)-\u003eelse(null));\n```\n\n## isAboveOrEqual\n```php\n$this-\u003eassertEquals(42, expect(42)-\u003eisAboveOrEqual(42)-\u003eelse(null));\n$this-\u003eassertEquals(42, expect(42)-\u003eisAboveOrEqual(23)-\u003eelse(null));\n$this-\u003eassertEquals(null, expect(42)-\u003eisAboveOrEqual(256)-\u003eelse(null));\n```\n\n## isPositive\n```php\n$this-\u003eassertEquals(42, expect(-1)-\u003eisPositive()-\u003eelse(42));\n$this-\u003eassertEquals(0, expect(0)-\u003eisPositive()-\u003eelse(42));\n```\n\n## isNegative\n```php\n$this-\u003eassertEquals(-1, expect(-1)-\u003eisNegative()-\u003eelse(42));\n$this-\u003eassertEquals(42, expect(0)-\u003eisNegative()-\u003eelse(42));\n```\n\n## isEven\n```php\n$this-\u003eassertEquals(42, expect(42)-\u003eisEven()-\u003eelse(23));\n$this-\u003eassertEquals(42, expect(23)-\u003eisEven()-\u003eelse(42));\n```\n\n## isOdd\n```php\n$this-\u003eassertEquals(23, expect(42)-\u003eisOdd()-\u003eelse(23));\n$this-\u003eassertEquals(23, expect(23)-\u003eisOdd()-\u003eelse(42));\n```\n\n## match\n```php\n$this-\u003eassertEquals('abc', expect('abc')-\u003ematch('/a*b{1}c?d?/')-\u003eelse('foo'));\n$this-\u003eassertEquals('foo', expect('ac')-\u003ematch('/a*b{1}c?d?/')-\u003eelse('foo'));\n```\n\n## then\n```php\n$this-\u003eassertEquals('foo', expect(42)-\u003eisEven()-\u003ethen('foo'));\n$this-\u003eassertEquals(42, expect(42)-\u003eisOdd()-\u003ethen('foo'));\n```\n\n----\n\nYou don't like global functions? Use a static method:\n```php\n$this-\u003eassertEquals(42, Expect::that(42)-\u003eisInt()-\u003eelse(null));\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgame%2Fphp-expectation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgame%2Fphp-expectation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgame%2Fphp-expectation/lists"}