Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes #46.
However, it implement this feature some breaking changes had to be made:
CBMCentralManager
was refactored from a protocol to a class with internal init. This was required so the type methods (CBMCentralManager.authorization
andCBMCentralManager.supports(:)
) could be called on the main manager without the need of specifying mock or native manager.Note: The behavior of those methods is not trivial. If simulated values were set in
CBMCentralManagerMock.simulateAuthorization(:)
andCBMCentralManagerMock.simulateFeatureSupport
, the above-mentioned methods will return simulated values. Otherwise, the native implementation will be returned. To always get native implementation useCBMCentralManagerNative.authorization
andCBMCentralManagerNative.supports(:)
. On the other hand, to always get mock values, useCBMCentralManagerMock.authorization
andCBMCentralManagerMock.supports(:)
.simulateStateRestoration
andsimulateFeaturesSupport
were moved fromCBMCentralManagerFactory
toCBMCentralManagerMock
. This groups all thesimulate...
methods together. That was not required, but I think the API is now more clear.A new static method
simulateAuthorization(:)
was added toCBMCentralManagerMock
. It's available from iOS 13.0. By default, the mock manager has authorization.allowedAlways
. This method allows to set different values. Other values will cause all theCBMCentralManager
to transition toCBMManagerState.unauthorized
state.