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. |
||
---|---|---|
.. | ||
AliasDarksideTests | ||
DarksideTests | ||
NetworkTests | ||
OfflineTests | ||
PerformanceTests | ||
TestUtils | ||
lightwalletd |