Source of file Config.php

Size: 6,301 Bytes - Last Modified: 2021-08-28T08:05:12+00:00

C:/Users/MAKS/Code/_PROJECTS/amqp-agent/src/Config.php

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
7677
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
78
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
79
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
80818283
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
84
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
8586
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
87
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
888990919293949596
Covered by 5 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
979899100101102103104105106107
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
108
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
109110111112113114115116
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
117118119120121122123124125126
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
127128
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
129
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
130
Covered by 4 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
131132133134
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
135
Covered by 23 test(s):
  • MAKS\AmqpAgent\Tests\ClientTest::testAmqpAgentExceptionViaConstructorIsRaisedWhenUnSupportedArgumentIsProvided
  • MAKS\AmqpAgent\Tests\ClientTest::testInstantiatingAClientWithAPathToConfigFileAndGetingConfigInstanceBack
  • MAKS\AmqpAgent\Tests\ClientTest::testGetPublisherInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetConsumerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetServerEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetClientEndpointInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetSerializerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetLoggerInstance
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceByName
  • MAKS\AmqpAgent\Tests\ClientTest::testGetInstanceRaisesExceptionIfMemberCouldNotBeFetched
  • MAKS\AmqpAgent\Tests\ClientTest::testGettableReturnsAnArrayWithExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaConstructor
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testManipulatingConfigArrayViaPublicPropertyAccessAndAssignmentNotation
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
  • MAKS\AmqpAgent\Tests\ConfigTest::testCastingConfigObjectToString
136137138139140141142143144145
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
146147
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
148149150151152153154155156157158
Covered by 2 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
159160
Covered by 2 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
161162163164165166167168169170171172
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
173174
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
175176177178179180181182183
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetDefaultConfigReturnsDefaultConfig
184185186187188189190191192
Covered by 3 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigReturnsAnArrayAndHasAnExpectedToBeFoundKey
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
193194195196197198199200201202
Covered by 4 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
203204
Covered by 4 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
205206
Covered by 4 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigResetsTheConfigAndReturnsTheNewArray
  • MAKS\AmqpAgent\Tests\ConfigTest::testHasMethodReturnsAnExpectedValue
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetMethodReturnsAnExpectedValues
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetMethodSetsValuesAndGetMethodReturnsThem
207208209210211212213214215
Covered by 2 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testGetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
216217218219220221222223224225226227
Covered by 2 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
228
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
229230
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
231
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
232
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
233
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
234
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testConfigFileNotFoundExceptionIsRaisedViaSetConfigPath
235236237238239
Covered by 1 test(s):
  • MAKS\AmqpAgent\Tests\ConfigTest::testSetConfigPathSetsANewPathAndRebuildsTheConfigObject
240241242
<?php

/**
 * @author Marwan Al-Soltany <MarwanAlsoltany@gmail.com>
 * @copyright Marwan Al-Soltany 2020
 * For the full copyright and license information, please view
 * the LICENSE file that was distributed with this source code.
 */

declare(strict_types=1);

namespace MAKS\AmqpAgent;

use Exception;
use MAKS\AmqpAgent\Helper\ArrayProxy;
use MAKS\AmqpAgent\Exception\ConfigFileNotFoundException;

/**
 * A class that turns the configuration file into an object.
 *
 * Example:
 * ```
 * $config = new Config('path/to/some/config-file.php'); // specific config
 * $config = new Config(); // default config
 * ```
 *
 * @since 1.0.0
 * @property array $connectionOptions
 * @property array $channelOptions
 * @property array $queueOptions
 * @property array $exchangeOptions
 * @property array $bindOptions
 * @property array $qosOptions
 * @property array $waitOptions
 * @property array $messageOptions
 * @property array $publishOptions
 * @property array $consumeOptions
 * @property array $rpcConnectionOptions
 * @property string $rpcQueueName
 */
final class Config
{
    /**
     * The default name of the configuration file.
     * @var string
     */
    public const DEFAULT_CONFIG_FILE_NAME = 'maks-amqp-agent-config';

    /**
     * The default path of the configuration file.
     * @var string
     */
    public const DEFAULT_CONFIG_FILE_PATH = __DIR__ . DIRECTORY_SEPARATOR . 'Config' . DIRECTORY_SEPARATOR . self::DEFAULT_CONFIG_FILE_NAME . '.php';

    /**
     * The multidimensional configuration array.
     * @var array
     */
    private $config;

    /**
     * Configuration file path.
     * @var string
     */
    private $configPath;


    /**
     * Config object constructor.
     * @param string|null $configPath [optional] The path to AMQP Agent configuration file.
     * @throws ConfigFileNotFoundException
     */
    public function __construct(?string $configPath = null)
    {
        $configFile = realpath($configPath ?? self::DEFAULT_CONFIG_FILE_PATH);

        if (!$configFile || !file_exists($configFile)) {
            throw new ConfigFileNotFoundException(
                "AMQP Agent configuration file cloud not be found, check if the given path \"{$configPath}\" exists."
            );
        }

        $this->config = include($configFile);
        $this->configPath = $configFile;

        $this->repair();
    }

    /**
     * Gets the the given key from the configuration array via public property access notation.
     * @param string $key
     * @return mixed
     */
    public function __get(string $key)
    {
        return $this->config[$key];
    }

    /**
     * Sets the the given key in the configuration array via public property assignment notation.
     * @param string $key
     * @param mixed $value
     * @return void
     */
    public function __set(string $key, $value)
    {
        $this->config[$key] = $value;
    }

    /**
     * Returns config file path if the object was casted to a string.
     * @return string
     */
    public function __toString()
    {
        return $this->configPath;
    }


    /**
     * Repairs the config array if first-level of the passed array does not have all keys.
     * @return void
     */
    private function repair(): void
    {
        $config = require(self::DEFAULT_CONFIG_FILE_PATH);

        foreach ($config as $key => $value) {
            if (!array_key_exists($key, $this->config)) {
                $this->config[$key] = [];
            }
        }

        unset($config);
    }

    /**
     * Checks whether a value exists in the configuration array via dot-notation representation.
     * @since 1.2.2
     * @param string $key The dotted key representation.
     * @return bool True if key is set otherwise false.
     */
    public function has(string $key): bool
    {
        $value = ArrayProxy::getArrayValueByKey($this->config, $key, null);

        return isset($value);
    }

    /**
     * Gets a value of a key from the configuration array via dot-notation representation.
     * @since 1.2.2
     * @param string $key The dotted key representation.
     * @return mixed The requested value or null.
     */
    public function get(string $key)
    {
        $value = ArrayProxy::getArrayValueByKey($this->config, $key);

        return $value;
    }

    /**
     * Sets a value of a key from the configuration array via dot-notation representation.
     * @since 1.2.2
     * @param string $key The dotted key representation.
     * @param mixed $value The value to set.
     * @return self
     */
    public function set(string $key, $value)
    {
        ArrayProxy::setArrayValueByKey($this->config, $key, $value);

        return $this;
    }

    /**
     * Returns the default configuration array.
     * @return array
     */
    public function getDefaultConfig(): array
    {
        return include(self::DEFAULT_CONFIG_FILE_PATH);
    }

    /**
     * Returns the current configuration array.
     * @return array
     */
    public function getConfig(): array
    {
        return $this->config;
    }

    /**
     * Sets a new configuration array to be used instead of the current.
     * @param array $config
     * @return self
     */
    public function setConfig(array $config)
    {
        $this->config = $config;

        $this->repair();

        return $this;
    }

    /**
     * Returns the path of the configuration file.
     * @return string
     */
    public function getConfigPath(): string
    {
        return $this->configPath;
    }

    /**
     * Sets the path of the configuration file and rebuilds the internal state of the object.
     * @param string $configPath
     * @return self
     * @throws ConfigFileNotFoundException
     */
    public function setConfigPath(string $configPath)
    {
        try {
            $this->config = include($configPath);
            $this->configPath = $configPath;

            $this->repair();
        } catch (Exception $error) {
            throw new ConfigFileNotFoundException(
                "Something went wrong when trying to include the file and rebuild the configuration, check if the given path \"{$configPath}\" exists.",
                (int)$error->getCode(),
                $error
            );
        }

        return $this;
    }
}