These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | /** |
||
3 | * Bind TeamCity test listener. Echos messages to stdout that TeamCity interprets into the test results |
||
4 | * |
||
5 | * @package framework |
||
6 | * @subpackage testing |
||
7 | */ |
||
8 | class TeamCityListener implements PHPUnit_Framework_TestListener { |
||
9 | |||
10 | private function escape($str) { |
||
11 | return strtr($str, array( |
||
12 | "\n" => '|n', |
||
13 | "\r" => '|r', |
||
14 | "[" => '|[', |
||
15 | "]" => '|]', |
||
16 | "'" => "|'", |
||
17 | "|" => '||' |
||
18 | )); |
||
19 | } |
||
20 | |||
21 | public function startTestSuite(PHPUnit_Framework_TestSuite $suite) { |
||
22 | echo "##teamcity[testSuiteStarted name='{$suite->getName()}']\n"; |
||
23 | } |
||
24 | |||
25 | public function endTestSuite(PHPUnit_Framework_TestSuite $suite) { |
||
26 | echo "##teamcity[testSuiteFinished name='{$suite->getName()}']\n"; |
||
27 | } |
||
28 | |||
29 | public function startTest(PHPUnit_Framework_Test $test) { |
||
30 | $class = get_class($test); |
||
31 | echo "##teamcity[testStarted name='{$class}.{$test->getName()}']\n"; |
||
0 ignored issues
–
show
|
|||
32 | } |
||
33 | |||
34 | public function endTest(PHPUnit_Framework_Test $test, $time) { |
||
35 | $class = get_class($test); |
||
36 | echo "##teamcity[testFinished name='{$class}.{$test->getName()}' duration='$time']\n"; |
||
0 ignored issues
–
show
It seems like you code against a concrete implementation and not the interface
PHPUnit_Framework_Test as the method getName() does only exist in the following implementations of said interface: AbstractTest , AopProxyTest , ArrayDataTest , ArrayLibTest , ArrayListTest , AssetAdapterTest , AssetControlExtensionTest , AssetFieldTest , AssetManipulationListTest , AssetStoreTest , BacktraceTest , BankAccountTest , BankAccountWithCustomExtensionTest , BasicAuthTest , BeforeAndAfterTest , BeforeClassAndAfterClassTest , BulkLoaderResultTest , CMSMenuItemTest , CMSMenuTest , CMSProfileControllerTest , CSSContentParserTest , CSVParserTest , CacheTest , ChangeCurrentWorkingDirectoryTest , ChangeSetItemTest , ChangeSetTest , CheckboxFieldTest , CheckboxSetFieldTest , ClassInfoTest , ClassLoaderTest , ClassManifestTest , ComponentSetTest , Composer\Installers\Test\AsgardInstallerTest , Composer\Installers\Test\CakePHPInstallerTest , Composer\Installers\Test\CraftInstallerTest , Composer\Installers\Test\DokuWikiInstallerTest , Composer\Installers\Test\GravInstallerTest , Composer\Installers\Test\InstallerTest , Composer\Installers\Test\MediaWikiInstallerTest , Composer\Installers\Test\OctoberInstallerTest , Composer\Installers\Test\PimcoreInstallerTest , Composer\Installers\Test\PiwikInstallerTest , Composer\Installers\Test\TestCase , CompositeFieldTest , ConcreteTest , ConcreteWithMyCustomExtensionTest , ConfigManifestTest , ConfigStaticManifestTest , ConfigTest , ConfirmedPasswordFieldTest , ContentNegotiatorTest , ControllerTest , ConvertTest , CookieJarTest , CookieTest , CoreTest , CountTest , CoverageClassExtendedTest , CoverageClassTest , CoverageFunctionParenthesesTest , CoverageFunctionParenthesesWhitespaceTest , CoverageFunctionTest , CoverageMethodOneLineAnnotationTest , CoverageMethodParenthesesTest , CoverageMethodParenthesesWhitespaceTest , CoverageMethodTest , CoverageNamespacedFunctionTest , CoverageNoneTest , CoverageNotPrivateTest , CoverageNotProtectedTest , CoverageNotPublicTest , CoverageNothingTest , CoveragePrivateTest , CoverageProtectedTest , CoveragePublicTest , CsvBulkLoaderTest , CurrencyFieldTest , DBClassNameTest , DBCompositeTest , DBCurrencyTest , DBDateTest , DBDatetimeTest , DBFieldTest , DBFileTest , DBHTMLTextTest , DBLocaleTest , DBMoneyTest , DBPercentageTest , DBStringTest , DBTest , DBTextTest , DBYearTest , DataDifferencerTest , DataExtensionTest , DataListTest , DataObjectDuplicationTest , DataObjectLazyLoadingTest , DataObjectSchemaGenerationTest , DataObjectSchemaTest , DataObjectTest , DataProviderDebugTest , DataProviderFilterTest , DataProviderIncompleteTest , DataProviderSkippedTest , DataProviderTest , DataQueryTest , DatabaseTest , DateFieldTest , DateFieldViewJQueryTest , DatetimeFieldTest , DecimalTest , DefaultAssetNameGeneratorTest , DependencyFailureTest , DependencySuccessTest , DeprecationTest , DevAdminControllerTest , DiffTest , DirectorTest , DropdownFieldTest , EmailFieldTest , EmailTest , EmbedShortcodeProviderTest , EmptyTestCaseTest , EncryptAllPasswordsTaskTest , EnumFieldTest , ErrorControlChainTest , ExceptionInAssertPostConditionsTest , ExceptionInAssertPreConditionsTest , ExceptionInSetUpTest , ExceptionInTearDownTest , ExceptionInTest , ExceptionMessageRegExpTest , ExceptionMessageTest , ExceptionStackTest , ExceptionTest , Extensions_PhptTestCaseTest , Extensions_RepeatedTestTest , Failure , FailureTest , FatalTest , FieldGroupTest , FieldListTest , FileFieldTest , FileFinderTest , FileMigrationHelperTest , FileNameFilterTest , FileTest , FixtureBlueprintTest , FixtureFactoryTest , FlushRequestFilterTest , FolderTest , Foo_Bar_Issue684Test , FormActionTest , FormFieldTest , FormScaffolderTest , FormSchemaTest , FormTest , Framework_AssertTest , Framework_BaseTestListenerTest , Framework_ConstraintTest , Framework_Constraint_JsonMatchesTest , Framework_Constraint_Jso...rrorMessageProviderTest , Framework_SuiteTest , Framework_TestCaseTest , Framework_TestFailureTest , Framework_TestImplementorTest , Framework_TestListenerTest , FulltextFilterTest , FulltextSearchableTest , FunctionalTest , GDImageTest , GDTest , GridFieldAddExistingAutocompleterTest , GridFieldConfigTest , GridFieldDataColumnsTest , GridFieldDeleteActionTest , GridFieldDetailFormTest , GridFieldEditButtonTest , GridFieldExportButtonTest , GridFieldPaginatorTest , GridFieldPrintButtonTest , GridFieldSortableHeaderTest , GridFieldTest , GridField_URLHandlerTest , GroupCsvBulkLoaderTest , GroupTest , GroupedDropdownFieldTest , GroupedListTest , HTMLCleanerTest , HTMLEditorConfigTest , HTMLEditorFieldTest , HTMLEditorFieldToolbarTest , HTMLEditorSanitiserTest , HTTPRequestTest , HTTPResponseTest , HTTPTest , HasManyListTest , HierarchyTest , ImageTest , ImagickImageTest , IncompleteTest , InheritanceA , InheritanceB , InheritedTestCase , IniTest , InjectorTest , InlineFormActionTest , IsolationTest , Issue1021Test , Issue1149Test , Issue1216Test , Issue1265Test , Issue1330Test , Issue1335Test , Issue1337Test , Issue1348Test , Issue1351Test , Issue1374Test , Issue1437Test , Issue1468Test , Issue1471Test , Issue1472Test , Issue1570Test , Issue2158Test , Issue244Test , Issue322Test , Issue433Test , Issue445Test , Issue498Test , Issue503Test , Issue523Test , Issue578Test , Issue581Test , Issue74Test , Issue765Test , Issue797Test , LabelFieldTest , LeftAndMainTest , ListboxFieldTest , LookupFieldTest , MailerTest , ManifestFileFinderTest , ManyManyListExtensionTest , ManyManyListTest , MemberAuthenticatorTest , MemberCsvBulkLoaderTest , MemberDatetimeOptionsetFieldTest , MemberTest , MemoryLimitTest , ModelAdminTest , MoneyFieldTest , Monolog\ErrorHandlerTest , Monolog\Formatter\ChromePHPFormatterTest , Monolog\Formatter\ElasticaFormatterTest , Monolog\Formatter\FlowdockFormatterTest , Monolog\Formatter\FluentdFormatterTest , Monolog\Formatter\GelfMessageFormatterTest , Monolog\Formatter\JsonFormatterTest , Monolog\Formatter\LineFormatterTest , Monolog\Formatter\LogglyFormatterTest , Monolog\Formatter\LogstashFormatterTest , Monolog\Formatter\MongoDBFormatterTest , Monolog\Formatter\NormalizerFormatterTest , Monolog\Formatter\ScalarFormatterTest , Monolog\Formatter\WildfireFormatterTest , Monolog\Handler\AbstractHandlerTest , Monolog\Handler\AbstractProcessingHandlerTest , Monolog\Handler\AmqpHandlerTest , Monolog\Handler\BrowserConsoleHandlerTest , Monolog\Handler\BufferHandlerTest , Monolog\Handler\ChromePHPHandlerTest , Monolog\Handler\CouchDBHandlerTest , Monolog\Handler\DeduplicationHandlerTest , Monolog\Handler\DoctrineCouchDBHandlerTest , Monolog\Handler\DynamoDbHandlerTest , Monolog\Handler\ElasticSearchHandlerTest , Monolog\Handler\ErrorLogHandlerTest , Monolog\Handler\FilterHandlerTest , Monolog\Handler\FingersCrossedHandlerTest , Monolog\Handler\FirePHPHandlerTest , Monolog\Handler\FleepHookHandlerTest , Monolog\Handler\FlowdockHandlerTest , Monolog\Handler\GelfHandlerLegacyTest , Monolog\Handler\GelfHandlerTest , Monolog\Handler\GroupHandlerTest , Monolog\Handler\HandlerWrapperTest , Monolog\Handler\HipChatHandlerTest , Monolog\Handler\LogEntriesHandlerTest , Monolog\Handler\MailHandlerTest , Monolog\Handler\MongoDBHandlerTest , Monolog\Handler\NativeMailerHandlerTest , Monolog\Handler\NewRelicHandlerTest , Monolog\Handler\NullHandlerTest , Monolog\Handler\PHPConsoleHandlerTest , Monolog\Handler\PsrHandlerTest , Monolog\Handler\PushoverHandlerTest , Monolog\Handler\RavenHandlerTest , Monolog\Handler\RedisHandlerTest , Monolog\Handler\RotatingFileHandlerTest , Monolog\Handler\SamplingHandlerTest , Monolog\Handler\SlackHandlerTest , Monolog\Handler\SocketHandlerTest , Monolog\Handler\StreamHandlerTest , Monolog\Handler\SwiftMailerHandlerTest , Monolog\Handler\SyslogHandlerTest , Monolog\Handler\SyslogUdpHandlerTest , Monolog\Handler\TestHandlerTest , Monolog\Handler\UdpSocketTest , Monolog\Handler\WhatFailureGroupHandlerTest , Monolog\Handler\ZendMonitorHandlerTest , Monolog\LoggerTest , Monolog\Processor\GitProcessorTest , Monolog\Processor\IntrospectionProcessorTest , Monolog\Processor\MemoryPeakUsageProcessorTest , Monolog\Processor\MemoryUsageProcessorTest , Monolog\Processor\ProcessIdProcessorTest , Monolog\Processor\PsrLogMessageProcessorTest , Monolog\Processor\TagProcessorTest , Monolog\Processor\UidProcessorTest , Monolog\Processor\WebProcessorTest , Monolog\PsrLogCompatTest , Monolog\RegistryTest , Monolog\TestCase , MultiDependencyTest , MySQLDatabaseConfigurationHelperTest , MySQLDatabaseTest , My\Space\ExceptionNamespaceTest , NamespaceCoverageClassExtendedTest , NamespaceCoverageClassTest , NamespaceCoverageCoversClassPublicTest , NamespaceCoverageCoversClassTest , NamespaceCoverageMethodTest , NamespaceCoverageNotPrivateTest , NamespaceCoverageNotProtectedTest , NamespaceCoverageNotPublicTest , NamespaceCoveragePrivateTest , NamespaceCoverageProtectedTest , NamespaceCoveragePublicTest , NamespacedClassManifestTest , NoArgTestCaseTest , NoTestCases , NotExistingCoveredElementTest , NotPublicTestCase , NotVoidTestCase , NothingTest , NullHTTPRequestTest , NullableFieldTests , NumericFieldTest , ObjectTest , OneTest , OneTestCase , OptionsetFieldTest , OutputTestCase , OverrideTestCase , PDODatabaseTest , PHPUnit_Extensions_GroupTestSuite , PHPUnit_Extensions_PhptTestCase , PHPUnit_Extensions_PhptTestSuite , PHPUnit_Framework_IncompleteTestCase , PHPUnit_Framework_SkippedTestCase , PHPUnit_Framework_TestCase , PHPUnit_Framework_TestSuite , PHPUnit_Framework_TestSuite_DataProvider , PHPUnit_Framework_Warning , PaginatedListTest , ParameterConfirmationTokenTest , PasswordEncryptorTest , PasswordValidatorTest , PermissionCheckboxSetFieldTest , PermissionRoleTest , PermissionTest , PhpSyntaxTest , PhpTestCaseProxy , PjaxResponseNegotiatorTest , PolymorphicHasManyListTest , ProtectedFileControllerTest , RSSFeedTest , RandomGeneratorTest , RequestHandlingTest , RequiredFieldsTest , RequirementsClassBeforeClassHookTest , RequirementsTest , RequirementsTest , Runner_BaseTestRunnerTest , SQLFormatterTest , SQLInsertTest , SQLSelectTest , SQLUpdateTest , SSViewerCacheBlockTest , SSViewerTest , SS_HTML4ValueTest , SS_MapTest , SapphireTest , SearchContextTest , SearchFilterApplyRelationTest , SecurityAdminTest , SecurityDefaultAdminTest , SecurityTest , SecurityTokenTest , SelectionGroupTest , SessionTest , ShortcodeParserTest , StackTest , Success , TaskRunnerTest , TemplateLoaderTest , TemplateManifestTest , TemplateMethodsTest , TestError , TestIncomplete , TestSkipped , TestWithTest , TextFieldTest , TextareaFieldTest , ThrowExceptionTestCase , ThrowNoExceptionTestCase , TimeFieldTest , TimeTest , TokenisedRegularExpressionTest , TransactionTest , Translate_Adapter_RailsYAMLTest , TreeDropdownFieldTest , TwoTest , URLSegmentFilterTest , UnsavedRelationListTest , UploadFieldTest , UploadTest , Util_ConfigurationTest , Util_GetoptTest , Util_GlobalStateTest , Util_RegexTest , Util_TestDox_NamePrettifierTest , Util_TestTest , Util_XMLTest , ValidationExceptionTest , VersionableExtensionsTest , VersionedOwnershipTest , VersionedTest , ViewableDataTest , WasRun , XMLDataFormatterTest , YamlFixtureTest , i18nSSLegacyAdapterTest , i18nTest , i18nTextCollectorTest .
Let’s take a look at an example: interface User
{
/** @return string */
public function getPassword();
}
class MyUser implements User
{
public function getPassword()
{
// return something
}
public function getDisplayName()
{
// return some name.
}
}
class AuthSystem
{
public function authenticate(User $user)
{
$this->logger->info(sprintf('Authenticating %s.', $user->getDisplayName()));
// do something.
}
}
In the above example, the authenticate() method works fine as long as you just pass instances of MyUser. However, if you now also want to pass a different implementation of User which does not have a getDisplayName() method, the code will break. Available Fixes
Note: PHP Analyzer uses reverse abstract interpretation to narrow down the types
inside the if block in such a case.
Loading history...
|
|||
37 | } |
||
38 | |||
39 | public function addError(PHPUnit_Framework_Test $test, Exception $e, $time) { |
||
40 | $class = get_class($test); |
||
41 | $message = $this->escape("Exception: {$e->getMessage()}"); |
||
42 | $trace = $this->escape($e->getTraceAsString()); |
||
43 | echo "##teamcity[testFailed type='exception' name='{$class}.{$test->getName()}' message='$message'" |
||
0 ignored issues
–
show
It seems like you code against a concrete implementation and not the interface
PHPUnit_Framework_Test as the method getName() does only exist in the following implementations of said interface: AbstractTest , AopProxyTest , ArrayDataTest , ArrayLibTest , ArrayListTest , AssetAdapterTest , AssetControlExtensionTest , AssetFieldTest , AssetManipulationListTest , AssetStoreTest , BacktraceTest , BankAccountTest , BankAccountWithCustomExtensionTest , BasicAuthTest , BeforeAndAfterTest , BeforeClassAndAfterClassTest , BulkLoaderResultTest , CMSMenuItemTest , CMSMenuTest , CMSProfileControllerTest , CSSContentParserTest , CSVParserTest , CacheTest , ChangeCurrentWorkingDirectoryTest , ChangeSetItemTest , ChangeSetTest , CheckboxFieldTest , CheckboxSetFieldTest , ClassInfoTest , ClassLoaderTest , ClassManifestTest , ComponentSetTest , Composer\Installers\Test\AsgardInstallerTest , Composer\Installers\Test\CakePHPInstallerTest , Composer\Installers\Test\CraftInstallerTest , Composer\Installers\Test\DokuWikiInstallerTest , Composer\Installers\Test\GravInstallerTest , Composer\Installers\Test\InstallerTest , Composer\Installers\Test\MediaWikiInstallerTest , Composer\Installers\Test\OctoberInstallerTest , Composer\Installers\Test\PimcoreInstallerTest , Composer\Installers\Test\PiwikInstallerTest , Composer\Installers\Test\TestCase , CompositeFieldTest , ConcreteTest , ConcreteWithMyCustomExtensionTest , ConfigManifestTest , ConfigStaticManifestTest , ConfigTest , ConfirmedPasswordFieldTest , ContentNegotiatorTest , ControllerTest , ConvertTest , CookieJarTest , CookieTest , CoreTest , CountTest , CoverageClassExtendedTest , CoverageClassTest , CoverageFunctionParenthesesTest , CoverageFunctionParenthesesWhitespaceTest , CoverageFunctionTest , CoverageMethodOneLineAnnotationTest , CoverageMethodParenthesesTest , CoverageMethodParenthesesWhitespaceTest , CoverageMethodTest , CoverageNamespacedFunctionTest , CoverageNoneTest , CoverageNotPrivateTest , CoverageNotProtectedTest , CoverageNotPublicTest , CoverageNothingTest , CoveragePrivateTest , CoverageProtectedTest , CoveragePublicTest , CsvBulkLoaderTest , CurrencyFieldTest , DBClassNameTest , DBCompositeTest , DBCurrencyTest , DBDateTest , DBDatetimeTest , DBFieldTest , DBFileTest , DBHTMLTextTest , DBLocaleTest , DBMoneyTest , DBPercentageTest , DBStringTest , DBTest , DBTextTest , DBYearTest , DataDifferencerTest , DataExtensionTest , DataListTest , DataObjectDuplicationTest , DataObjectLazyLoadingTest , DataObjectSchemaGenerationTest , DataObjectSchemaTest , DataObjectTest , DataProviderDebugTest , DataProviderFilterTest , DataProviderIncompleteTest , DataProviderSkippedTest , DataProviderTest , DataQueryTest , DatabaseTest , DateFieldTest , DateFieldViewJQueryTest , DatetimeFieldTest , DecimalTest , DefaultAssetNameGeneratorTest , DependencyFailureTest , DependencySuccessTest , DeprecationTest , DevAdminControllerTest , DiffTest , DirectorTest , DropdownFieldTest , EmailFieldTest , EmailTest , EmbedShortcodeProviderTest , EmptyTestCaseTest , EncryptAllPasswordsTaskTest , EnumFieldTest , ErrorControlChainTest , ExceptionInAssertPostConditionsTest , ExceptionInAssertPreConditionsTest , ExceptionInSetUpTest , ExceptionInTearDownTest , ExceptionInTest , ExceptionMessageRegExpTest , ExceptionMessageTest , ExceptionStackTest , ExceptionTest , Extensions_PhptTestCaseTest , Extensions_RepeatedTestTest , Failure , FailureTest , FatalTest , FieldGroupTest , FieldListTest , FileFieldTest , FileFinderTest , FileMigrationHelperTest , FileNameFilterTest , FileTest , FixtureBlueprintTest , FixtureFactoryTest , FlushRequestFilterTest , FolderTest , Foo_Bar_Issue684Test , FormActionTest , FormFieldTest , FormScaffolderTest , FormSchemaTest , FormTest , Framework_AssertTest , Framework_BaseTestListenerTest , Framework_ConstraintTest , Framework_Constraint_JsonMatchesTest , Framework_Constraint_Jso...rrorMessageProviderTest , Framework_SuiteTest , Framework_TestCaseTest , Framework_TestFailureTest , Framework_TestImplementorTest , Framework_TestListenerTest , FulltextFilterTest , FulltextSearchableTest , FunctionalTest , GDImageTest , GDTest , GridFieldAddExistingAutocompleterTest , GridFieldConfigTest , GridFieldDataColumnsTest , GridFieldDeleteActionTest , GridFieldDetailFormTest , GridFieldEditButtonTest , GridFieldExportButtonTest , GridFieldPaginatorTest , GridFieldPrintButtonTest , GridFieldSortableHeaderTest , GridFieldTest , GridField_URLHandlerTest , GroupCsvBulkLoaderTest , GroupTest , GroupedDropdownFieldTest , GroupedListTest , HTMLCleanerTest , HTMLEditorConfigTest , HTMLEditorFieldTest , HTMLEditorFieldToolbarTest , HTMLEditorSanitiserTest , HTTPRequestTest , HTTPResponseTest , HTTPTest , HasManyListTest , HierarchyTest , ImageTest , ImagickImageTest , IncompleteTest , InheritanceA , InheritanceB , InheritedTestCase , IniTest , InjectorTest , InlineFormActionTest , IsolationTest , Issue1021Test , Issue1149Test , Issue1216Test , Issue1265Test , Issue1330Test , Issue1335Test , Issue1337Test , Issue1348Test , Issue1351Test , Issue1374Test , Issue1437Test , Issue1468Test , Issue1471Test , Issue1472Test , Issue1570Test , Issue2158Test , Issue244Test , Issue322Test , Issue433Test , Issue445Test , Issue498Test , Issue503Test , Issue523Test , Issue578Test , Issue581Test , Issue74Test , Issue765Test , Issue797Test , LabelFieldTest , LeftAndMainTest , ListboxFieldTest , LookupFieldTest , MailerTest , ManifestFileFinderTest , ManyManyListExtensionTest , ManyManyListTest , MemberAuthenticatorTest , MemberCsvBulkLoaderTest , MemberDatetimeOptionsetFieldTest , MemberTest , MemoryLimitTest , ModelAdminTest , MoneyFieldTest , Monolog\ErrorHandlerTest , Monolog\Formatter\ChromePHPFormatterTest , Monolog\Formatter\ElasticaFormatterTest , Monolog\Formatter\FlowdockFormatterTest , Monolog\Formatter\FluentdFormatterTest , Monolog\Formatter\GelfMessageFormatterTest , Monolog\Formatter\JsonFormatterTest , Monolog\Formatter\LineFormatterTest , Monolog\Formatter\LogglyFormatterTest , Monolog\Formatter\LogstashFormatterTest , Monolog\Formatter\MongoDBFormatterTest , Monolog\Formatter\NormalizerFormatterTest , Monolog\Formatter\ScalarFormatterTest , Monolog\Formatter\WildfireFormatterTest , Monolog\Handler\AbstractHandlerTest , Monolog\Handler\AbstractProcessingHandlerTest , Monolog\Handler\AmqpHandlerTest , Monolog\Handler\BrowserConsoleHandlerTest , Monolog\Handler\BufferHandlerTest , Monolog\Handler\ChromePHPHandlerTest , Monolog\Handler\CouchDBHandlerTest , Monolog\Handler\DeduplicationHandlerTest , Monolog\Handler\DoctrineCouchDBHandlerTest , Monolog\Handler\DynamoDbHandlerTest , Monolog\Handler\ElasticSearchHandlerTest , Monolog\Handler\ErrorLogHandlerTest , Monolog\Handler\FilterHandlerTest , Monolog\Handler\FingersCrossedHandlerTest , Monolog\Handler\FirePHPHandlerTest , Monolog\Handler\FleepHookHandlerTest , Monolog\Handler\FlowdockHandlerTest , Monolog\Handler\GelfHandlerLegacyTest , Monolog\Handler\GelfHandlerTest , Monolog\Handler\GroupHandlerTest , Monolog\Handler\HandlerWrapperTest , Monolog\Handler\HipChatHandlerTest , Monolog\Handler\LogEntriesHandlerTest , Monolog\Handler\MailHandlerTest , Monolog\Handler\MongoDBHandlerTest , Monolog\Handler\NativeMailerHandlerTest , Monolog\Handler\NewRelicHandlerTest , Monolog\Handler\NullHandlerTest , Monolog\Handler\PHPConsoleHandlerTest , Monolog\Handler\PsrHandlerTest , Monolog\Handler\PushoverHandlerTest , Monolog\Handler\RavenHandlerTest , Monolog\Handler\RedisHandlerTest , Monolog\Handler\RotatingFileHandlerTest , Monolog\Handler\SamplingHandlerTest , Monolog\Handler\SlackHandlerTest , Monolog\Handler\SocketHandlerTest , Monolog\Handler\StreamHandlerTest , Monolog\Handler\SwiftMailerHandlerTest , Monolog\Handler\SyslogHandlerTest , Monolog\Handler\SyslogUdpHandlerTest , Monolog\Handler\TestHandlerTest , Monolog\Handler\UdpSocketTest , Monolog\Handler\WhatFailureGroupHandlerTest , Monolog\Handler\ZendMonitorHandlerTest , Monolog\LoggerTest , Monolog\Processor\GitProcessorTest , Monolog\Processor\IntrospectionProcessorTest , Monolog\Processor\MemoryPeakUsageProcessorTest , Monolog\Processor\MemoryUsageProcessorTest , Monolog\Processor\ProcessIdProcessorTest , Monolog\Processor\PsrLogMessageProcessorTest , Monolog\Processor\TagProcessorTest , Monolog\Processor\UidProcessorTest , Monolog\Processor\WebProcessorTest , Monolog\PsrLogCompatTest , Monolog\RegistryTest , Monolog\TestCase , MultiDependencyTest , MySQLDatabaseConfigurationHelperTest , MySQLDatabaseTest , My\Space\ExceptionNamespaceTest , NamespaceCoverageClassExtendedTest , NamespaceCoverageClassTest , NamespaceCoverageCoversClassPublicTest , NamespaceCoverageCoversClassTest , NamespaceCoverageMethodTest , NamespaceCoverageNotPrivateTest , NamespaceCoverageNotProtectedTest , NamespaceCoverageNotPublicTest , NamespaceCoveragePrivateTest , NamespaceCoverageProtectedTest , NamespaceCoveragePublicTest , NamespacedClassManifestTest , NoArgTestCaseTest , NoTestCases , NotExistingCoveredElementTest , NotPublicTestCase , NotVoidTestCase , NothingTest , NullHTTPRequestTest , NullableFieldTests , NumericFieldTest , ObjectTest , OneTest , OneTestCase , OptionsetFieldTest , OutputTestCase , OverrideTestCase , PDODatabaseTest , PHPUnit_Extensions_GroupTestSuite , PHPUnit_Extensions_PhptTestCase , PHPUnit_Extensions_PhptTestSuite , PHPUnit_Framework_IncompleteTestCase , PHPUnit_Framework_SkippedTestCase , PHPUnit_Framework_TestCase , PHPUnit_Framework_TestSuite , PHPUnit_Framework_TestSuite_DataProvider , PHPUnit_Framework_Warning , PaginatedListTest , ParameterConfirmationTokenTest , PasswordEncryptorTest , PasswordValidatorTest , PermissionCheckboxSetFieldTest , PermissionRoleTest , PermissionTest , PhpSyntaxTest , PhpTestCaseProxy , PjaxResponseNegotiatorTest , PolymorphicHasManyListTest , ProtectedFileControllerTest , RSSFeedTest , RandomGeneratorTest , RequestHandlingTest , RequiredFieldsTest , RequirementsClassBeforeClassHookTest , RequirementsTest , RequirementsTest , Runner_BaseTestRunnerTest , SQLFormatterTest , SQLInsertTest , SQLSelectTest , SQLUpdateTest , SSViewerCacheBlockTest , SSViewerTest , SS_HTML4ValueTest , SS_MapTest , SapphireTest , SearchContextTest , SearchFilterApplyRelationTest , SecurityAdminTest , SecurityDefaultAdminTest , SecurityTest , SecurityTokenTest , SelectionGroupTest , SessionTest , ShortcodeParserTest , StackTest , Success , TaskRunnerTest , TemplateLoaderTest , TemplateManifestTest , TemplateMethodsTest , TestError , TestIncomplete , TestSkipped , TestWithTest , TextFieldTest , TextareaFieldTest , ThrowExceptionTestCase , ThrowNoExceptionTestCase , TimeFieldTest , TimeTest , TokenisedRegularExpressionTest , TransactionTest , Translate_Adapter_RailsYAMLTest , TreeDropdownFieldTest , TwoTest , URLSegmentFilterTest , UnsavedRelationListTest , UploadFieldTest , UploadTest , Util_ConfigurationTest , Util_GetoptTest , Util_GlobalStateTest , Util_RegexTest , Util_TestDox_NamePrettifierTest , Util_TestTest , Util_XMLTest , ValidationExceptionTest , VersionableExtensionsTest , VersionedOwnershipTest , VersionedTest , ViewableDataTest , WasRun , XMLDataFormatterTest , YamlFixtureTest , i18nSSLegacyAdapterTest , i18nTest , i18nTextCollectorTest .
Let’s take a look at an example: interface User
{
/** @return string */
public function getPassword();
}
class MyUser implements User
{
public function getPassword()
{
// return something
}
public function getDisplayName()
{
// return some name.
}
}
class AuthSystem
{
public function authenticate(User $user)
{
$this->logger->info(sprintf('Authenticating %s.', $user->getDisplayName()));
// do something.
}
}
In the above example, the authenticate() method works fine as long as you just pass instances of MyUser. However, if you now also want to pass a different implementation of User which does not have a getDisplayName() method, the code will break. Available Fixes
Note: PHP Analyzer uses reverse abstract interpretation to narrow down the types
inside the if block in such a case.
Loading history...
|
|||
44 | . " details='$trace']\n"; |
||
45 | } |
||
46 | |||
47 | public function addFailure(PHPUnit_Framework_Test $test, PHPUnit_Framework_AssertionFailedError $e, $time) { |
||
48 | $class = get_class($test); |
||
49 | $message = $this->escape(PHPUnit_Framework_TestFailure::exceptionToString($e)); |
||
50 | $trace = $this->escape($e->getTraceAsString()); |
||
51 | echo "##teamcity[testFailed type='failure' name='{$class}.{$test->getName()}' message='$message'" |
||
0 ignored issues
–
show
It seems like you code against a concrete implementation and not the interface
PHPUnit_Framework_Test as the method getName() does only exist in the following implementations of said interface: AbstractTest , AopProxyTest , ArrayDataTest , ArrayLibTest , ArrayListTest , AssetAdapterTest , AssetControlExtensionTest , AssetFieldTest , AssetManipulationListTest , AssetStoreTest , BacktraceTest , BankAccountTest , BankAccountWithCustomExtensionTest , BasicAuthTest , BeforeAndAfterTest , BeforeClassAndAfterClassTest , BulkLoaderResultTest , CMSMenuItemTest , CMSMenuTest , CMSProfileControllerTest , CSSContentParserTest , CSVParserTest , CacheTest , ChangeCurrentWorkingDirectoryTest , ChangeSetItemTest , ChangeSetTest , CheckboxFieldTest , CheckboxSetFieldTest , ClassInfoTest , ClassLoaderTest , ClassManifestTest , ComponentSetTest , Composer\Installers\Test\AsgardInstallerTest , Composer\Installers\Test\CakePHPInstallerTest , Composer\Installers\Test\CraftInstallerTest , Composer\Installers\Test\DokuWikiInstallerTest , Composer\Installers\Test\GravInstallerTest , Composer\Installers\Test\InstallerTest , Composer\Installers\Test\MediaWikiInstallerTest , Composer\Installers\Test\OctoberInstallerTest , Composer\Installers\Test\PimcoreInstallerTest , Composer\Installers\Test\PiwikInstallerTest , Composer\Installers\Test\TestCase , CompositeFieldTest , ConcreteTest , ConcreteWithMyCustomExtensionTest , ConfigManifestTest , ConfigStaticManifestTest , ConfigTest , ConfirmedPasswordFieldTest , ContentNegotiatorTest , ControllerTest , ConvertTest , CookieJarTest , CookieTest , CoreTest , CountTest , CoverageClassExtendedTest , CoverageClassTest , CoverageFunctionParenthesesTest , CoverageFunctionParenthesesWhitespaceTest , CoverageFunctionTest , CoverageMethodOneLineAnnotationTest , CoverageMethodParenthesesTest , CoverageMethodParenthesesWhitespaceTest , CoverageMethodTest , CoverageNamespacedFunctionTest , CoverageNoneTest , CoverageNotPrivateTest , CoverageNotProtectedTest , CoverageNotPublicTest , CoverageNothingTest , CoveragePrivateTest , CoverageProtectedTest , CoveragePublicTest , CsvBulkLoaderTest , CurrencyFieldTest , DBClassNameTest , DBCompositeTest , DBCurrencyTest , DBDateTest , DBDatetimeTest , DBFieldTest , DBFileTest , DBHTMLTextTest , DBLocaleTest , DBMoneyTest , DBPercentageTest , DBStringTest , DBTest , DBTextTest , DBYearTest , DataDifferencerTest , DataExtensionTest , DataListTest , DataObjectDuplicationTest , DataObjectLazyLoadingTest , DataObjectSchemaGenerationTest , DataObjectSchemaTest , DataObjectTest , DataProviderDebugTest , DataProviderFilterTest , DataProviderIncompleteTest , DataProviderSkippedTest , DataProviderTest , DataQueryTest , DatabaseTest , DateFieldTest , DateFieldViewJQueryTest , DatetimeFieldTest , DecimalTest , DefaultAssetNameGeneratorTest , DependencyFailureTest , DependencySuccessTest , DeprecationTest , DevAdminControllerTest , DiffTest , DirectorTest , DropdownFieldTest , EmailFieldTest , EmailTest , EmbedShortcodeProviderTest , EmptyTestCaseTest , EncryptAllPasswordsTaskTest , EnumFieldTest , ErrorControlChainTest , ExceptionInAssertPostConditionsTest , ExceptionInAssertPreConditionsTest , ExceptionInSetUpTest , ExceptionInTearDownTest , ExceptionInTest , ExceptionMessageRegExpTest , ExceptionMessageTest , ExceptionStackTest , ExceptionTest , Extensions_PhptTestCaseTest , Extensions_RepeatedTestTest , Failure , FailureTest , FatalTest , FieldGroupTest , FieldListTest , FileFieldTest , FileFinderTest , FileMigrationHelperTest , FileNameFilterTest , FileTest , FixtureBlueprintTest , FixtureFactoryTest , FlushRequestFilterTest , FolderTest , Foo_Bar_Issue684Test , FormActionTest , FormFieldTest , FormScaffolderTest , FormSchemaTest , FormTest , Framework_AssertTest , Framework_BaseTestListenerTest , Framework_ConstraintTest , Framework_Constraint_JsonMatchesTest , Framework_Constraint_Jso...rrorMessageProviderTest , Framework_SuiteTest , Framework_TestCaseTest , Framework_TestFailureTest , Framework_TestImplementorTest , Framework_TestListenerTest , FulltextFilterTest , FulltextSearchableTest , FunctionalTest , GDImageTest , GDTest , GridFieldAddExistingAutocompleterTest , GridFieldConfigTest , GridFieldDataColumnsTest , GridFieldDeleteActionTest , GridFieldDetailFormTest , GridFieldEditButtonTest , GridFieldExportButtonTest , GridFieldPaginatorTest , GridFieldPrintButtonTest , GridFieldSortableHeaderTest , GridFieldTest , GridField_URLHandlerTest , GroupCsvBulkLoaderTest , GroupTest , GroupedDropdownFieldTest , GroupedListTest , HTMLCleanerTest , HTMLEditorConfigTest , HTMLEditorFieldTest , HTMLEditorFieldToolbarTest , HTMLEditorSanitiserTest , HTTPRequestTest , HTTPResponseTest , HTTPTest , HasManyListTest , HierarchyTest , ImageTest , ImagickImageTest , IncompleteTest , InheritanceA , InheritanceB , InheritedTestCase , IniTest , InjectorTest , InlineFormActionTest , IsolationTest , Issue1021Test , Issue1149Test , Issue1216Test , Issue1265Test , Issue1330Test , Issue1335Test , Issue1337Test , Issue1348Test , Issue1351Test , Issue1374Test , Issue1437Test , Issue1468Test , Issue1471Test , Issue1472Test , Issue1570Test , Issue2158Test , Issue244Test , Issue322Test , Issue433Test , Issue445Test , Issue498Test , Issue503Test , Issue523Test , Issue578Test , Issue581Test , Issue74Test , Issue765Test , Issue797Test , LabelFieldTest , LeftAndMainTest , ListboxFieldTest , LookupFieldTest , MailerTest , ManifestFileFinderTest , ManyManyListExtensionTest , ManyManyListTest , MemberAuthenticatorTest , MemberCsvBulkLoaderTest , MemberDatetimeOptionsetFieldTest , MemberTest , MemoryLimitTest , ModelAdminTest , MoneyFieldTest , Monolog\ErrorHandlerTest , Monolog\Formatter\ChromePHPFormatterTest , Monolog\Formatter\ElasticaFormatterTest , Monolog\Formatter\FlowdockFormatterTest , Monolog\Formatter\FluentdFormatterTest , Monolog\Formatter\GelfMessageFormatterTest , Monolog\Formatter\JsonFormatterTest , Monolog\Formatter\LineFormatterTest , Monolog\Formatter\LogglyFormatterTest , Monolog\Formatter\LogstashFormatterTest , Monolog\Formatter\MongoDBFormatterTest , Monolog\Formatter\NormalizerFormatterTest , Monolog\Formatter\ScalarFormatterTest , Monolog\Formatter\WildfireFormatterTest , Monolog\Handler\AbstractHandlerTest , Monolog\Handler\AbstractProcessingHandlerTest , Monolog\Handler\AmqpHandlerTest , Monolog\Handler\BrowserConsoleHandlerTest , Monolog\Handler\BufferHandlerTest , Monolog\Handler\ChromePHPHandlerTest , Monolog\Handler\CouchDBHandlerTest , Monolog\Handler\DeduplicationHandlerTest , Monolog\Handler\DoctrineCouchDBHandlerTest , Monolog\Handler\DynamoDbHandlerTest , Monolog\Handler\ElasticSearchHandlerTest , Monolog\Handler\ErrorLogHandlerTest , Monolog\Handler\FilterHandlerTest , Monolog\Handler\FingersCrossedHandlerTest , Monolog\Handler\FirePHPHandlerTest , Monolog\Handler\FleepHookHandlerTest , Monolog\Handler\FlowdockHandlerTest , Monolog\Handler\GelfHandlerLegacyTest , Monolog\Handler\GelfHandlerTest , Monolog\Handler\GroupHandlerTest , Monolog\Handler\HandlerWrapperTest , Monolog\Handler\HipChatHandlerTest , Monolog\Handler\LogEntriesHandlerTest , Monolog\Handler\MailHandlerTest , Monolog\Handler\MongoDBHandlerTest , Monolog\Handler\NativeMailerHandlerTest , Monolog\Handler\NewRelicHandlerTest , Monolog\Handler\NullHandlerTest , Monolog\Handler\PHPConsoleHandlerTest , Monolog\Handler\PsrHandlerTest , Monolog\Handler\PushoverHandlerTest , Monolog\Handler\RavenHandlerTest , Monolog\Handler\RedisHandlerTest , Monolog\Handler\RotatingFileHandlerTest , Monolog\Handler\SamplingHandlerTest , Monolog\Handler\SlackHandlerTest , Monolog\Handler\SocketHandlerTest , Monolog\Handler\StreamHandlerTest , Monolog\Handler\SwiftMailerHandlerTest , Monolog\Handler\SyslogHandlerTest , Monolog\Handler\SyslogUdpHandlerTest , Monolog\Handler\TestHandlerTest , Monolog\Handler\UdpSocketTest , Monolog\Handler\WhatFailureGroupHandlerTest , Monolog\Handler\ZendMonitorHandlerTest , Monolog\LoggerTest , Monolog\Processor\GitProcessorTest , Monolog\Processor\IntrospectionProcessorTest , Monolog\Processor\MemoryPeakUsageProcessorTest , Monolog\Processor\MemoryUsageProcessorTest , Monolog\Processor\ProcessIdProcessorTest , Monolog\Processor\PsrLogMessageProcessorTest , Monolog\Processor\TagProcessorTest , Monolog\Processor\UidProcessorTest , Monolog\Processor\WebProcessorTest , Monolog\PsrLogCompatTest , Monolog\RegistryTest , Monolog\TestCase , MultiDependencyTest , MySQLDatabaseConfigurationHelperTest , MySQLDatabaseTest , My\Space\ExceptionNamespaceTest , NamespaceCoverageClassExtendedTest , NamespaceCoverageClassTest , NamespaceCoverageCoversClassPublicTest , NamespaceCoverageCoversClassTest , NamespaceCoverageMethodTest , NamespaceCoverageNotPrivateTest , NamespaceCoverageNotProtectedTest , NamespaceCoverageNotPublicTest , NamespaceCoveragePrivateTest , NamespaceCoverageProtectedTest , NamespaceCoveragePublicTest , NamespacedClassManifestTest , NoArgTestCaseTest , NoTestCases , NotExistingCoveredElementTest , NotPublicTestCase , NotVoidTestCase , NothingTest , NullHTTPRequestTest , NullableFieldTests , NumericFieldTest , ObjectTest , OneTest , OneTestCase , OptionsetFieldTest , OutputTestCase , OverrideTestCase , PDODatabaseTest , PHPUnit_Extensions_GroupTestSuite , PHPUnit_Extensions_PhptTestCase , PHPUnit_Extensions_PhptTestSuite , PHPUnit_Framework_IncompleteTestCase , PHPUnit_Framework_SkippedTestCase , PHPUnit_Framework_TestCase , PHPUnit_Framework_TestSuite , PHPUnit_Framework_TestSuite_DataProvider , PHPUnit_Framework_Warning , PaginatedListTest , ParameterConfirmationTokenTest , PasswordEncryptorTest , PasswordValidatorTest , PermissionCheckboxSetFieldTest , PermissionRoleTest , PermissionTest , PhpSyntaxTest , PhpTestCaseProxy , PjaxResponseNegotiatorTest , PolymorphicHasManyListTest , ProtectedFileControllerTest , RSSFeedTest , RandomGeneratorTest , RequestHandlingTest , RequiredFieldsTest , RequirementsClassBeforeClassHookTest , RequirementsTest , RequirementsTest , Runner_BaseTestRunnerTest , SQLFormatterTest , SQLInsertTest , SQLSelectTest , SQLUpdateTest , SSViewerCacheBlockTest , SSViewerTest , SS_HTML4ValueTest , SS_MapTest , SapphireTest , SearchContextTest , SearchFilterApplyRelationTest , SecurityAdminTest , SecurityDefaultAdminTest , SecurityTest , SecurityTokenTest , SelectionGroupTest , SessionTest , ShortcodeParserTest , StackTest , Success , TaskRunnerTest , TemplateLoaderTest , TemplateManifestTest , TemplateMethodsTest , TestError , TestIncomplete , TestSkipped , TestWithTest , TextFieldTest , TextareaFieldTest , ThrowExceptionTestCase , ThrowNoExceptionTestCase , TimeFieldTest , TimeTest , TokenisedRegularExpressionTest , TransactionTest , Translate_Adapter_RailsYAMLTest , TreeDropdownFieldTest , TwoTest , URLSegmentFilterTest , UnsavedRelationListTest , UploadFieldTest , UploadTest , Util_ConfigurationTest , Util_GetoptTest , Util_GlobalStateTest , Util_RegexTest , Util_TestDox_NamePrettifierTest , Util_TestTest , Util_XMLTest , ValidationExceptionTest , VersionableExtensionsTest , VersionedOwnershipTest , VersionedTest , ViewableDataTest , WasRun , XMLDataFormatterTest , YamlFixtureTest , i18nSSLegacyAdapterTest , i18nTest , i18nTextCollectorTest .
Let’s take a look at an example: interface User
{
/** @return string */
public function getPassword();
}
class MyUser implements User
{
public function getPassword()
{
// return something
}
public function getDisplayName()
{
// return some name.
}
}
class AuthSystem
{
public function authenticate(User $user)
{
$this->logger->info(sprintf('Authenticating %s.', $user->getDisplayName()));
// do something.
}
}
In the above example, the authenticate() method works fine as long as you just pass instances of MyUser. However, if you now also want to pass a different implementation of User which does not have a getDisplayName() method, the code will break. Available Fixes
Note: PHP Analyzer uses reverse abstract interpretation to narrow down the types
inside the if block in such a case.
Loading history...
|
|||
52 | . " details='$trace']\n"; |
||
53 | } |
||
54 | |||
55 | public function addIncompleteTest(PHPUnit_Framework_Test $test, Exception $e, $time) { |
||
56 | // NOP |
||
57 | } |
||
58 | |||
59 | public function addSkippedTest(PHPUnit_Framework_Test $test, Exception $e, $time) { |
||
60 | $class = get_class($test); |
||
61 | $message = $this->escape($e->getMessage()); |
||
62 | echo "##teamcity[testIgnored name='{$class}.{$test->getName()}' message='$message']\n"; |
||
0 ignored issues
–
show
It seems like you code against a concrete implementation and not the interface
PHPUnit_Framework_Test as the method getName() does only exist in the following implementations of said interface: AbstractTest , AopProxyTest , ArrayDataTest , ArrayLibTest , ArrayListTest , AssetAdapterTest , AssetControlExtensionTest , AssetFieldTest , AssetManipulationListTest , AssetStoreTest , BacktraceTest , BankAccountTest , BankAccountWithCustomExtensionTest , BasicAuthTest , BeforeAndAfterTest , BeforeClassAndAfterClassTest , BulkLoaderResultTest , CMSMenuItemTest , CMSMenuTest , CMSProfileControllerTest , CSSContentParserTest , CSVParserTest , CacheTest , ChangeCurrentWorkingDirectoryTest , ChangeSetItemTest , ChangeSetTest , CheckboxFieldTest , CheckboxSetFieldTest , ClassInfoTest , ClassLoaderTest , ClassManifestTest , ComponentSetTest , Composer\Installers\Test\AsgardInstallerTest , Composer\Installers\Test\CakePHPInstallerTest , Composer\Installers\Test\CraftInstallerTest , Composer\Installers\Test\DokuWikiInstallerTest , Composer\Installers\Test\GravInstallerTest , Composer\Installers\Test\InstallerTest , Composer\Installers\Test\MediaWikiInstallerTest , Composer\Installers\Test\OctoberInstallerTest , Composer\Installers\Test\PimcoreInstallerTest , Composer\Installers\Test\PiwikInstallerTest , Composer\Installers\Test\TestCase , CompositeFieldTest , ConcreteTest , ConcreteWithMyCustomExtensionTest , ConfigManifestTest , ConfigStaticManifestTest , ConfigTest , ConfirmedPasswordFieldTest , ContentNegotiatorTest , ControllerTest , ConvertTest , CookieJarTest , CookieTest , CoreTest , CountTest , CoverageClassExtendedTest , CoverageClassTest , CoverageFunctionParenthesesTest , CoverageFunctionParenthesesWhitespaceTest , CoverageFunctionTest , CoverageMethodOneLineAnnotationTest , CoverageMethodParenthesesTest , CoverageMethodParenthesesWhitespaceTest , CoverageMethodTest , CoverageNamespacedFunctionTest , CoverageNoneTest , CoverageNotPrivateTest , CoverageNotProtectedTest , CoverageNotPublicTest , CoverageNothingTest , CoveragePrivateTest , CoverageProtectedTest , CoveragePublicTest , CsvBulkLoaderTest , CurrencyFieldTest , DBClassNameTest , DBCompositeTest , DBCurrencyTest , DBDateTest , DBDatetimeTest , DBFieldTest , DBFileTest , DBHTMLTextTest , DBLocaleTest , DBMoneyTest , DBPercentageTest , DBStringTest , DBTest , DBTextTest , DBYearTest , DataDifferencerTest , DataExtensionTest , DataListTest , DataObjectDuplicationTest , DataObjectLazyLoadingTest , DataObjectSchemaGenerationTest , DataObjectSchemaTest , DataObjectTest , DataProviderDebugTest , DataProviderFilterTest , DataProviderIncompleteTest , DataProviderSkippedTest , DataProviderTest , DataQueryTest , DatabaseTest , DateFieldTest , DateFieldViewJQueryTest , DatetimeFieldTest , DecimalTest , DefaultAssetNameGeneratorTest , DependencyFailureTest , DependencySuccessTest , DeprecationTest , DevAdminControllerTest , DiffTest , DirectorTest , DropdownFieldTest , EmailFieldTest , EmailTest , EmbedShortcodeProviderTest , EmptyTestCaseTest , EncryptAllPasswordsTaskTest , EnumFieldTest , ErrorControlChainTest , ExceptionInAssertPostConditionsTest , ExceptionInAssertPreConditionsTest , ExceptionInSetUpTest , ExceptionInTearDownTest , ExceptionInTest , ExceptionMessageRegExpTest , ExceptionMessageTest , ExceptionStackTest , ExceptionTest , Extensions_PhptTestCaseTest , Extensions_RepeatedTestTest , Failure , FailureTest , FatalTest , FieldGroupTest , FieldListTest , FileFieldTest , FileFinderTest , FileMigrationHelperTest , FileNameFilterTest , FileTest , FixtureBlueprintTest , FixtureFactoryTest , FlushRequestFilterTest , FolderTest , Foo_Bar_Issue684Test , FormActionTest , FormFieldTest , FormScaffolderTest , FormSchemaTest , FormTest , Framework_AssertTest , Framework_BaseTestListenerTest , Framework_ConstraintTest , Framework_Constraint_JsonMatchesTest , Framework_Constraint_Jso...rrorMessageProviderTest , Framework_SuiteTest , Framework_TestCaseTest , Framework_TestFailureTest , Framework_TestImplementorTest , Framework_TestListenerTest , FulltextFilterTest , FulltextSearchableTest , FunctionalTest , GDImageTest , GDTest , GridFieldAddExistingAutocompleterTest , GridFieldConfigTest , GridFieldDataColumnsTest , GridFieldDeleteActionTest , GridFieldDetailFormTest , GridFieldEditButtonTest , GridFieldExportButtonTest , GridFieldPaginatorTest , GridFieldPrintButtonTest , GridFieldSortableHeaderTest , GridFieldTest , GridField_URLHandlerTest , GroupCsvBulkLoaderTest , GroupTest , GroupedDropdownFieldTest , GroupedListTest , HTMLCleanerTest , HTMLEditorConfigTest , HTMLEditorFieldTest , HTMLEditorFieldToolbarTest , HTMLEditorSanitiserTest , HTTPRequestTest , HTTPResponseTest , HTTPTest , HasManyListTest , HierarchyTest , ImageTest , ImagickImageTest , IncompleteTest , InheritanceA , InheritanceB , InheritedTestCase , IniTest , InjectorTest , InlineFormActionTest , IsolationTest , Issue1021Test , Issue1149Test , Issue1216Test , Issue1265Test , Issue1330Test , Issue1335Test , Issue1337Test , Issue1348Test , Issue1351Test , Issue1374Test , Issue1437Test , Issue1468Test , Issue1471Test , Issue1472Test , Issue1570Test , Issue2158Test , Issue244Test , Issue322Test , Issue433Test , Issue445Test , Issue498Test , Issue503Test , Issue523Test , Issue578Test , Issue581Test , Issue74Test , Issue765Test , Issue797Test , LabelFieldTest , LeftAndMainTest , ListboxFieldTest , LookupFieldTest , MailerTest , ManifestFileFinderTest , ManyManyListExtensionTest , ManyManyListTest , MemberAuthenticatorTest , MemberCsvBulkLoaderTest , MemberDatetimeOptionsetFieldTest , MemberTest , MemoryLimitTest , ModelAdminTest , MoneyFieldTest , Monolog\ErrorHandlerTest , Monolog\Formatter\ChromePHPFormatterTest , Monolog\Formatter\ElasticaFormatterTest , Monolog\Formatter\FlowdockFormatterTest , Monolog\Formatter\FluentdFormatterTest , Monolog\Formatter\GelfMessageFormatterTest , Monolog\Formatter\JsonFormatterTest , Monolog\Formatter\LineFormatterTest , Monolog\Formatter\LogglyFormatterTest , Monolog\Formatter\LogstashFormatterTest , Monolog\Formatter\MongoDBFormatterTest , Monolog\Formatter\NormalizerFormatterTest , Monolog\Formatter\ScalarFormatterTest , Monolog\Formatter\WildfireFormatterTest , Monolog\Handler\AbstractHandlerTest , Monolog\Handler\AbstractProcessingHandlerTest , Monolog\Handler\AmqpHandlerTest , Monolog\Handler\BrowserConsoleHandlerTest , Monolog\Handler\BufferHandlerTest , Monolog\Handler\ChromePHPHandlerTest , Monolog\Handler\CouchDBHandlerTest , Monolog\Handler\DeduplicationHandlerTest , Monolog\Handler\DoctrineCouchDBHandlerTest , Monolog\Handler\DynamoDbHandlerTest , Monolog\Handler\ElasticSearchHandlerTest , Monolog\Handler\ErrorLogHandlerTest , Monolog\Handler\FilterHandlerTest , Monolog\Handler\FingersCrossedHandlerTest , Monolog\Handler\FirePHPHandlerTest , Monolog\Handler\FleepHookHandlerTest , Monolog\Handler\FlowdockHandlerTest , Monolog\Handler\GelfHandlerLegacyTest , Monolog\Handler\GelfHandlerTest , Monolog\Handler\GroupHandlerTest , Monolog\Handler\HandlerWrapperTest , Monolog\Handler\HipChatHandlerTest , Monolog\Handler\LogEntriesHandlerTest , Monolog\Handler\MailHandlerTest , Monolog\Handler\MongoDBHandlerTest , Monolog\Handler\NativeMailerHandlerTest , Monolog\Handler\NewRelicHandlerTest , Monolog\Handler\NullHandlerTest , Monolog\Handler\PHPConsoleHandlerTest , Monolog\Handler\PsrHandlerTest , Monolog\Handler\PushoverHandlerTest , Monolog\Handler\RavenHandlerTest , Monolog\Handler\RedisHandlerTest , Monolog\Handler\RotatingFileHandlerTest , Monolog\Handler\SamplingHandlerTest , Monolog\Handler\SlackHandlerTest , Monolog\Handler\SocketHandlerTest , Monolog\Handler\StreamHandlerTest , Monolog\Handler\SwiftMailerHandlerTest , Monolog\Handler\SyslogHandlerTest , Monolog\Handler\SyslogUdpHandlerTest , Monolog\Handler\TestHandlerTest , Monolog\Handler\UdpSocketTest , Monolog\Handler\WhatFailureGroupHandlerTest , Monolog\Handler\ZendMonitorHandlerTest , Monolog\LoggerTest , Monolog\Processor\GitProcessorTest , Monolog\Processor\IntrospectionProcessorTest , Monolog\Processor\MemoryPeakUsageProcessorTest , Monolog\Processor\MemoryUsageProcessorTest , Monolog\Processor\ProcessIdProcessorTest , Monolog\Processor\PsrLogMessageProcessorTest , Monolog\Processor\TagProcessorTest , Monolog\Processor\UidProcessorTest , Monolog\Processor\WebProcessorTest , Monolog\PsrLogCompatTest , Monolog\RegistryTest , Monolog\TestCase , MultiDependencyTest , MySQLDatabaseConfigurationHelperTest , MySQLDatabaseTest , My\Space\ExceptionNamespaceTest , NamespaceCoverageClassExtendedTest , NamespaceCoverageClassTest , NamespaceCoverageCoversClassPublicTest , NamespaceCoverageCoversClassTest , NamespaceCoverageMethodTest , NamespaceCoverageNotPrivateTest , NamespaceCoverageNotProtectedTest , NamespaceCoverageNotPublicTest , NamespaceCoveragePrivateTest , NamespaceCoverageProtectedTest , NamespaceCoveragePublicTest , NamespacedClassManifestTest , NoArgTestCaseTest , NoTestCases , NotExistingCoveredElementTest , NotPublicTestCase , NotVoidTestCase , NothingTest , NullHTTPRequestTest , NullableFieldTests , NumericFieldTest , ObjectTest , OneTest , OneTestCase , OptionsetFieldTest , OutputTestCase , OverrideTestCase , PDODatabaseTest , PHPUnit_Extensions_GroupTestSuite , PHPUnit_Extensions_PhptTestCase , PHPUnit_Extensions_PhptTestSuite , PHPUnit_Framework_IncompleteTestCase , PHPUnit_Framework_SkippedTestCase , PHPUnit_Framework_TestCase , PHPUnit_Framework_TestSuite , PHPUnit_Framework_TestSuite_DataProvider , PHPUnit_Framework_Warning , PaginatedListTest , ParameterConfirmationTokenTest , PasswordEncryptorTest , PasswordValidatorTest , PermissionCheckboxSetFieldTest , PermissionRoleTest , PermissionTest , PhpSyntaxTest , PhpTestCaseProxy , PjaxResponseNegotiatorTest , PolymorphicHasManyListTest , ProtectedFileControllerTest , RSSFeedTest , RandomGeneratorTest , RequestHandlingTest , RequiredFieldsTest , RequirementsClassBeforeClassHookTest , RequirementsTest , RequirementsTest , Runner_BaseTestRunnerTest , SQLFormatterTest , SQLInsertTest , SQLSelectTest , SQLUpdateTest , SSViewerCacheBlockTest , SSViewerTest , SS_HTML4ValueTest , SS_MapTest , SapphireTest , SearchContextTest , SearchFilterApplyRelationTest , SecurityAdminTest , SecurityDefaultAdminTest , SecurityTest , SecurityTokenTest , SelectionGroupTest , SessionTest , ShortcodeParserTest , StackTest , Success , TaskRunnerTest , TemplateLoaderTest , TemplateManifestTest , TemplateMethodsTest , TestError , TestIncomplete , TestSkipped , TestWithTest , TextFieldTest , TextareaFieldTest , ThrowExceptionTestCase , ThrowNoExceptionTestCase , TimeFieldTest , TimeTest , TokenisedRegularExpressionTest , TransactionTest , Translate_Adapter_RailsYAMLTest , TreeDropdownFieldTest , TwoTest , URLSegmentFilterTest , UnsavedRelationListTest , UploadFieldTest , UploadTest , Util_ConfigurationTest , Util_GetoptTest , Util_GlobalStateTest , Util_RegexTest , Util_TestDox_NamePrettifierTest , Util_TestTest , Util_XMLTest , ValidationExceptionTest , VersionableExtensionsTest , VersionedOwnershipTest , VersionedTest , ViewableDataTest , WasRun , XMLDataFormatterTest , YamlFixtureTest , i18nSSLegacyAdapterTest , i18nTest , i18nTextCollectorTest .
Let’s take a look at an example: interface User
{
/** @return string */
public function getPassword();
}
class MyUser implements User
{
public function getPassword()
{
// return something
}
public function getDisplayName()
{
// return some name.
}
}
class AuthSystem
{
public function authenticate(User $user)
{
$this->logger->info(sprintf('Authenticating %s.', $user->getDisplayName()));
// do something.
}
}
In the above example, the authenticate() method works fine as long as you just pass instances of MyUser. However, if you now also want to pass a different implementation of User which does not have a getDisplayName() method, the code will break. Available Fixes
Note: PHP Analyzer uses reverse abstract interpretation to narrow down the types
inside the if block in such a case.
Loading history...
|
|||
63 | } |
||
64 | |||
65 | /** |
||
66 | * Risky test. |
||
67 | * |
||
68 | * @param PHPUnit_Framework_Test $test |
||
69 | * @param Exception $e |
||
70 | * @param float $time |
||
71 | * @since Method available since Release 3.8.0 |
||
72 | */ |
||
73 | public function addRiskyTest(PHPUnit_Framework_Test $test, Exception $e, $time) { |
||
74 | // Stub out to support PHPUnit 3.8 |
||
75 | } |
||
76 | } |
||
77 |
Let’s take a look at an example:
In the above example, the authenticate() method works fine as long as you just pass instances of MyUser. However, if you now also want to pass a different implementation of User which does not have a getDisplayName() method, the code will break.
Available Fixes
Change the type-hint for the parameter:
Add an additional type-check:
Add the method to the interface: