diff --git a/.gitignore b/.gitignore index 151ec78..bb7de13 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ /*.log /.env /.DS_Store -/phpunit.result.cache \ No newline at end of file +/.phpunit.result.cache \ No newline at end of file diff --git a/.phpunit.result.cache b/.phpunit.result.cache index 73a8cc9..b5d1597 100644 --- a/.phpunit.result.cache +++ b/.phpunit.result.cache @@ -1 +1 @@ -{"version":1,"defects":{"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildWhere":7,"Apicalypse\\Tests\\QueryBuilderTest::testSelectWithWildcard":7,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeTrimsWhitespace":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithString":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArrayContainingEscapeSequences":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithEqualsOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotEqualsOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessThanOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAllOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAllOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAnyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAnyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsExactlyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testEnableGlobalStrictMode":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithAllComponents":7,"Apicalypse\\Tests\\QueryBuilderTest::testClearAllowsSettingNewValues":7,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithSpecialCharacters":7,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithUnicodeAndControlCharacters":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsOnMultidimensionalArray":7,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFail":8,"Apicalypse\\Tests\\QueryBuilderTest::testToStringCatch":7},"times":{"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildSelect":0.001,"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildWhere":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelect":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testWhereWithAndConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereWithOrConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereStartingWithAndCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereStartingWithOrCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testIsStrictModeEnabledDefault":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testEnableStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenEmpty":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testSelectWithWildcard":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenFieldsEmpty":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenFieldEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectTwice":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectAppend":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testExclude":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeAppendsFieldsWithoutDuplicates":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeThrowsExceptionWhenEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeTrimsWhitespace":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSelectedFieldsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectOverride":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelect":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAppend":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAppendsDuplicateFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectThrowsExceptionWhenEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetExcludedFieldsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetConditionsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereSetsInitialCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereThrowsIfCalledMoreThanOnce":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereAddsCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereBehavesLikeWhereIfNoPriorConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereAddsCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereThrowsIfCalledFirst":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSelectedFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetExcludedFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetConditionsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSortFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsSingleFieldWithDefaultAscDirection":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsSingleFieldWithExplicitDirection":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsMultipleFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortTrimsField":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetLimitOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitSet":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitThrowsExceptionForNegativeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitThrowsExceptionForZero":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetOffsetOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetSet":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetAcceptsZero":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetThrowsExceptionForNegativeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSearchTermOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearch":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchThrowsExceptionForEmptyString":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithString":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithInteger":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithTrueBoolean":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithFalseBoolean":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArrayContainingEscapeSequences":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithEqualsOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotEqualsOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithGreaterThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithGreaterOrEqualThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessOrEqualThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAllOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAllOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAnyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAnyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsExactlyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyStringValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForNonScalarValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testEnableGlobalStrictMode":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testStrictModeEnableInConstruct":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithSingleCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithMultipleAndConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithMixedAndOrConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereThrowsExceptionForInvalidOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildEmptyQuery":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithExclude":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithWhere":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSort":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithLimit":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSearch":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithAllComponents":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithZeroOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSearchTermNeedingEscaping":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearResetsAllProperties":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearAllowsSettingNewValues":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAfterAddSelect":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectChaining":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithSpecialCharacters":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithUnicodeAndControlCharacters":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsOnMultidimensionalArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testMethodChainingReturnsSameInstance":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithLargeString":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLargeArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchTermEndsWithBackslash":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimit":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitWithLargeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetWithLargeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringWithStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testToString":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFail":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFailOnStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringCatch":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testToStringReturnsErrorMessageOnBuildFailure":0}} \ No newline at end of file +{"version":1,"defects":{"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildWhere":7,"Apicalypse\\Tests\\QueryBuilderTest::testSelectWithWildcard":7,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeTrimsWhitespace":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithString":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArrayContainingEscapeSequences":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithEqualsOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotEqualsOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessThanOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAllOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAllOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAnyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAnyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsExactlyOperator":7,"Apicalypse\\Tests\\QueryBuilderTest::testEnableGlobalStrictMode":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithAllComponents":7,"Apicalypse\\Tests\\QueryBuilderTest::testClearAllowsSettingNewValues":7,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithSpecialCharacters":7,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithUnicodeAndControlCharacters":7,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsOnMultidimensionalArray":7,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFail":8,"Apicalypse\\Tests\\QueryBuilderTest::testToStringCatch":7},"times":{"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildSelect":0.001,"Silvera\\PhpApicalypse\\Tests\\QueryBuilderTest::testBuildWhere":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelect":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testWhereWithAndConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereWithOrConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereStartingWithAndCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereStartingWithOrCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testIsStrictModeEnabledDefault":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testEnableStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenEmpty":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testSelectWithWildcard":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenFieldsEmpty":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionWhenFieldEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectTwice":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectAppend":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testExclude":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeAppendsFieldsWithoutDuplicates":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeThrowsExceptionWhenEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testExcludeTrimsWhitespace":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSelectedFieldsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testSelectOverride":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelect":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAppend":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAppendsDuplicateFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectThrowsExceptionWhenEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetExcludedFieldsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetConditionsOnEmptyProperty":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereSetsInitialCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereThrowsIfCalledMoreThanOnce":0,"Apicalypse\\Tests\\QueryBuilderTest::testWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereAddsCondition":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereBehavesLikeWhereIfNoPriorConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testAndWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereAddsCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereThrowsIfCalledFirst":0,"Apicalypse\\Tests\\QueryBuilderTest::testOrWhereThrowsIfConditionEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSelectedFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetExcludedFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetConditionsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSortFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsSingleFieldWithDefaultAscDirection":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsSingleFieldWithExplicitDirection":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortAddsMultipleFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortTrimsField":0,"Apicalypse\\Tests\\QueryBuilderTest::testSortThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetLimitOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitSet":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitThrowsExceptionForNegativeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitThrowsExceptionForZero":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetOffsetOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetSet":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetAcceptsZero":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetThrowsExceptionForNegativeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetSearchTermOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearch":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchThrowsExceptionForEmptyString":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithString":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithInteger":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithTrueBoolean":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithFalseBoolean":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithArrayContainingEscapeSequences":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithEqualsOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotEqualsOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithGreaterThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithGreaterOrEqualThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLessOrEqualThanOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAllOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAllOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsAnyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithNotContainsAnyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithContainsExactlyOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForEmptyStringValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsExceptionForNonScalarValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testEnableGlobalStrictMode":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testStrictModeEnableInConstruct":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithSingleCondition":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithMultipleAndConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereWithMixedAndOrConditions":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWhereThrowsExceptionForInvalidOperator":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildEmptyQuery":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithExclude":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithWhere":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSort":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithLimit":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSearch":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithAllComponents":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithZeroOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildWithSearchTermNeedingEscaping":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearResetsAllProperties":0,"Apicalypse\\Tests\\QueryBuilderTest::testClearAllowsSettingNewValues":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectAfterAddSelect":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddSelectChaining":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithSpecialCharacters":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithUnicodeAndControlCharacters":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionThrowsOnMultidimensionalArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testMethodChainingReturnsSameInstance":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchWithLargeString":0,"Apicalypse\\Tests\\QueryBuilderTest::testBuildConditionWithLargeArray":0,"Apicalypse\\Tests\\QueryBuilderTest::testSearchTermEndsWithBackslash":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimit":0,"Apicalypse\\Tests\\QueryBuilderTest::testLimitWithLargeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffset":0,"Apicalypse\\Tests\\QueryBuilderTest::testOffsetWithLargeValue":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringWithStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testToString":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFail":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testToStringFailOnStrictMode":0,"Apicalypse\\Tests\\QueryBuilderTest::testToStringCatch":0.002,"Apicalypse\\Tests\\QueryBuilderTest::testToStringReturnsErrorMessageOnBuildFailure":0,"Apicalypse\\Tests\\QueryBuilderTest::testGetFieldsOnDefaultInit":0,"Apicalypse\\Tests\\QueryBuilderTest::testFields":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testFieldsOverride":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFieldsAfterAddFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testFieldsThrowsExceptionWhenEmpty":0.001,"Apicalypse\\Tests\\QueryBuilderTest::testFieldsThrowsExceptionOnEmptyField":0,"Apicalypse\\Tests\\QueryBuilderTest::testFieldsWithWildcard":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFieldsChaining":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFieldsAppendsDuplicateFields":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFieldsThrowsExceptionWhenEmpty":0,"Apicalypse\\Tests\\QueryBuilderTest::testAddFieldsThrowsExceptionOnEmptyField":0}} \ No newline at end of file diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php index b955439..fb9bc4f 100644 --- a/src/QueryBuilder.php +++ b/src/QueryBuilder.php @@ -18,7 +18,7 @@ class QueryBuilder public const ERROR_CONDITION_WHERE_NOT_INITIAL = 'Initial where condition is already set.'; public const ERROR_CONDITION_ORWHERE_FIRST = 'Cannot start conditions with orWhere.'; private bool $strictMode; - private array $select = []; + private array $fields = []; private array $exclude = []; private array $conditions = []; private array $sort = []; @@ -67,22 +67,22 @@ public function enableStrictMode(bool $enabled = true): self return $this; } - public function getSelectedFields(): array + public function getFields(): array { - return $this->select; + return $this->fields; } /** * @throws InvalidArgumentException if fields[] is empty or one field is empty or blank. */ - public function select(string ...$fields): self + public function fields(string ...$fields): self { if (empty($fields)) { throw new InvalidArgumentException("fields cannot be empty"); } if (count($fields) === 1 && $fields[0] === '*') { - $this->select = ['*']; + $this->fields = ['*']; return $this; } @@ -90,21 +90,21 @@ public function select(string ...$fields): self $fields[$i] = $this->validateAndTrimDotField($field); } - $this->select = $fields; + $this->fields = $fields; return $this; } /** - * Add fields to the existing select list. + * Add fields to the existing fields list. * - * Unlike select(), which replaces the entire selection, + * Unlike fields(), which replaces the entire selection, * this method appends new fields to the current list, * ensuring no duplicates. * * @throws InvalidArgumentException if no fields are passed * or any field is empty or blank. */ - public function addSelect(string ...$fields): self + public function addFields(string ...$fields): self { if (empty($fields)) { throw new InvalidArgumentException("fields cannot be empty"); @@ -114,7 +114,7 @@ public function addSelect(string ...$fields): self $fields[$i] = $this->validateAndTrimDotField($field); } - $this->select = array_unique([...$this->select, ...$fields]); + $this->fields = array_unique([...$this->fields, ...$fields]); return $this; } @@ -352,8 +352,8 @@ public function build(): string { $parts = []; - if (!empty($this->select)) { - $parts[] = 'fields ' . implode(',', $this->select) . ';'; + if (!empty($this->fields)) { + $parts[] = 'fields ' . implode(',', $this->fields) . ';'; } if (!empty($this->exclude)) { @@ -390,7 +390,7 @@ public function build(): string */ public function clear(): self { - $this->select = $this->exclude = $this->conditions = $this->sort = []; + $this->fields = $this->exclude = $this->conditions = $this->sort = []; $this->limit = $this->offset = $this->searchTerm = null; return $this; diff --git a/tests/QueryBuilderTest.php b/tests/QueryBuilderTest.php index 00bba26..fe9970a 100644 --- a/tests/QueryBuilderTest.php +++ b/tests/QueryBuilderTest.php @@ -36,94 +36,94 @@ public function testStrictModeEnableInConstruct(): void $this->assertTrue($builder->isStrictModeEnabled()); } - public function testGetSelectedFieldsOnDefaultInit(): void + public function testGetFieldsOnDefaultInit(): void { $builder = (new QueryBuilder()); - $this->assertEmpty($builder->getSelectedFields()); + $this->assertEmpty($builder->getFields()); } - public function testSelect(): void + public function testFields(): void { $builder = (new QueryBuilder()) - ->select('id', 'name', 'game.release', 'game.release.date.day'); + ->fields('id', 'name', 'game.release', 'game.release.date.day'); - $this->assertSame(['id', 'name', 'game.release', 'game.release.date.day'], $builder->getSelectedFields()); + $this->assertSame(['id', 'name', 'game.release', 'game.release.date.day'], $builder->getFields()); } - public function testSelectOverride(): void + public function testFieldsOverride(): void { $builder = (new QueryBuilder()) - ->select('id') - ->select('title'); + ->fields('id') + ->fields('title'); - $this->assertSame(['title'], $builder->getSelectedFields()); + $this->assertSame(['title'], $builder->getFields()); } - public function testAddSelectAfterAddSelect(): void + public function testAddFieldsAfterAddFields(): void { $builder = (new QueryBuilder()) - ->addSelect('id', 'name') - ->select('email', 'name'); + ->addFields('id', 'name') + ->fields('email', 'name'); - $this->assertSame(['email', 'name'], $builder->getSelectedFields()); + $this->assertSame(['email', 'name'], $builder->getFields()); } - public function testSelectThrowsExceptionWhenEmpty(): void + public function testFieldsThrowsExceptionWhenEmpty(): void { $this->expectException(InvalidArgumentException::class); - (new QueryBuilder())->select(); + (new QueryBuilder())->fields(); } - public function testSelectThrowsExceptionOnEmptyField(): void + public function testFieldsThrowsExceptionOnEmptyField(): void { $this->expectException(InvalidArgumentException::class); - (new QueryBuilder())->select('id', 'name', ''); + (new QueryBuilder())->fields('id', 'name', ''); } - public function testSelectWithWildcard(): void + public function testFieldsWithWildcard(): void { $builder = (new QueryBuilder()) - ->select('*'); + ->fields('*'); - $this->assertSame(['*'], $builder->getSelectedFields()); + $this->assertSame(['*'], $builder->getFields()); } - public function testAddSelect(): void + public function testAddFields(): void { $builder = (new QueryBuilder()) - ->addSelect('id', 'name'); + ->fields('id', 'name'); - $this->assertSame(['id', 'name'], $builder->getSelectedFields()); + $this->assertSame(['id', 'name'], $builder->getFields()); } - public function testAddSelectChaining(): void + public function testAddFieldsChaining(): void { $builder = (new QueryBuilder()) - ->addSelect('id', 'name') - ->addSelect('email', 'phone'); + ->addFields('id', 'name') + ->addFields('email', 'phone'); - $this->assertSame(['id', 'name', 'email', 'phone'], $builder->getSelectedFields()); + $this->assertSame(['id', 'name', 'email', 'phone'], $builder->getFields()); } - public function testAddSelectAppendsDuplicateFields(): void + public function testAddFieldsAppendsDuplicateFields(): void { $builder = (new QueryBuilder()) - ->select('id', 'name') - ->addSelect('email', 'name'); + ->fields('id', 'name') + ->addFields('email', 'name'); - $this->assertSame(['id', 'name', 'email'], $builder->getSelectedFields()); + $this->assertSame(['id', 'name', 'email'], $builder->getFields()); } - public function testAddSelectThrowsExceptionWhenEmpty(): void + public function testAddFieldsThrowsExceptionWhenEmpty(): void { $this->expectException(InvalidArgumentException::class); - (new QueryBuilder())->addSelect(); + (new QueryBuilder())->addFields(); } - public function testAddSelectThrowsExceptionOnEmptyField(): void + public function testAddFieldsThrowsExceptionOnEmptyField(): void { $this->expectException(InvalidArgumentException::class); - (new QueryBuilder())->addSelect('id', ''); + (new QueryBuilder())->addFields('id', ''); } public function testGetExcludedFieldsOnDefaultInit(): void @@ -631,7 +631,7 @@ public function testBuildEmptyQuery(): void public function testBuildWithFields(): void { $builder = (new QueryBuilder()) - ->select('name', 'age'); + ->fields('name', 'age'); $this->assertSame('fields name,age;', $builder->build()); } @@ -704,7 +704,7 @@ public function testBuildWithSearchTermNeedingEscaping(): void public function testBuildWithAllComponents(): void { $builder = (new QueryBuilder()) - ->select('name', 'age') + ->fields('name', 'age') ->exclude('created_at') ->where('age >= 18') ->andWhere('active = true') @@ -730,7 +730,7 @@ public function testClearOnDefaultInit(): void public function testClearResetsAllProperties(): void { $builder = (new QueryBuilder()) - ->select('name', 'age') + ->fields('name', 'age') ->exclude('created_at') ->where('age >= 18') ->andWhere('active = true') @@ -748,15 +748,15 @@ public function testClearResetsAllProperties(): void public function testClearAllowsSettingNewValues(): void { $builder = (new QueryBuilder()) - ->select('name') + ->fields('name') ->where('age > 18'); $builder->clear() - ->select('email') - ->addSelect('first_name', 'last_name') + ->fields('email') + ->addFields('first_name', 'last_name') ->where('active = true'); - $this->assertSame(['email', 'first_name', 'last_name'], $builder->getSelectedFields()); + $this->assertSame(['email', 'first_name', 'last_name'], $builder->getFields()); $this->assertSame([ ['operator' => null, 'condition' => 'active = true'] ], $builder->getConditions()); @@ -766,7 +766,7 @@ public function testMethodChainingReturnsSameInstance(): void { $builder = new QueryBuilder(); - $this->assertSame($builder, $builder->select('id')->addSelect('name')->where('id=1')); + $this->assertSame($builder, $builder->fields('id')->addFields('name')->where('id=1')); } /** @@ -775,7 +775,7 @@ public function testMethodChainingReturnsSameInstance(): void public function testToString(): void { $builder = (new QueryBuilder(true)) - ->select('valid'); + ->fields('valid'); $this->assertSame('fields valid;', (string)$builder); } @@ -800,12 +800,12 @@ public function testToStringFailOnStrictMode(): void (new QueryBuilder(true)) ->enableStrictMode() - ->select('valid', ''); + ->fields('valid', ''); } private function assertBuilderIsEmpty(QueryBuilder $builder): void { - $this->assertEmpty($builder->getSelectedFields(), 'Selected fields should be empty.'); + $this->assertEmpty($builder->getFields(), 'Selected fields should be empty.'); $this->assertEmpty($builder->getExcludedFields(), 'Excluded fields should be empty.'); $this->assertEmpty($builder->getConditions(), 'Conditions should be empty.'); $this->assertEmpty($builder->getSortFields(), 'Sort fields should be empty.');