5d2b2298b5
Closes #1012 - This is the first change for the dependency injection. This change adds `DIContainer` which is used to register and resolve dependencies. - Then this change shows how `DIContainer` can be used to resolve dependencies. And it also shows how to mock dependencies in tests. - Constructors of `Initializer` are changed to support mocking of depedendencies. But it doesn't affect public API in any way. - Depedencies are registered in `Dependencies.setup()`. Then in the code `container.resolve(SomeType.self)` is called to get instance of the dependency. - `ZcashTestCase` class is added. It inherits from `XCTestCase` and should be used for base class in tests. `ZcashTestCase` takes care of creation of `DIContainer` for dependencies mocking. In future we can maybe move there more things that are used in each test. - Lot is missing here. Not all the code is using dependency injection. Tests for `DIContainer` are missing. Only `OfflineTests` work now (other tests can't be even compiled). It will be added in future changes. |
||
---|---|---|
.. | ||
AsyncToClosureGateway.swift | ||
AsyncToCombineGateway.swift | ||
Clamped.swift | ||
DIContainer.swift | ||
GenericActor.swift | ||
LoggingProxy.swift | ||
OSLogger.swift | ||
SaplingParameterDownloader.swift | ||
SpecificCombineTypes.swift | ||
SyncSessionIDGenerator.swift | ||
Task+sleep.swift | ||
UsedAliasesChecker.swift |