public void Setup() { IConsumerNotifier notifier = new ConsumerNotifier(Substitute.For <INdmNotifier>()); DepositsInMemoryDb db = new DepositsInMemoryDb(); IProviderRepository providerRepository = new ProviderInMemoryRepository(db); DataAssetProvider provider = new DataAssetProvider(_providerAddress, "provider"); DataAssetService dataAssetService = new DataAssetService(providerRepository, notifier, LimboLogs.Instance); _asset1 = new DataAsset(_asset1Id, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1), new DataAssetRule(100)), provider, state: DataAssetState.Published); dataAssetService.AddDiscovered(_asset1, _ndmPeer); _deposit1 = new Deposit(_deposit1Id, 1, 2, 3); _details1 = new DepositDetails(_deposit1, _asset1, Address.Zero, new byte[0], 1, new TransactionInfo[0], 1); _asset2 = new DataAsset(_asset2Id, "name", "desc", 1, DataAssetUnitType.Time, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Published); dataAssetService.AddDiscovered(_asset2, _ndmPeer); _deposit2 = new Deposit(_deposit2Id, 1, 2, 3); _details2 = new DepositDetails(_deposit2, _asset2, Address.Zero, new byte[0], 1, new TransactionInfo[0], 2); _closed = new DataAsset(_closedId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Closed); dataAssetService.AddDiscovered(_closed, _ndmPeer); _depositForClosed = new Deposit(_depositForClosedId, 1, 2, 3); _depositForClosedDetails = new DepositDetails(_depositForClosed, _closed, Address.Zero, new byte[0], 1, new TransactionInfo[0]); _missingAsset = new DataAsset(_missingAssetId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Published); _depositForMissing = new Deposit(_depositForMissingId, 1, 2, 3); _depositForMissingDetails = new DepositDetails(_depositForMissing, _missingAsset, Address.Zero, new byte[0], 1, new TransactionInfo[0]); IDepositProvider depositProvider = Substitute.For <IDepositProvider>(); depositProvider.GetAsync(_deposit1Id).Returns(_details1); depositProvider.GetAsync(_deposit2Id).Returns(_details2); depositProvider.GetAsync(_depositForMissingId).Returns(_depositForMissingDetails); depositProvider.GetAsync(_depositForClosedId).Returns(_depositForClosedDetails); _ndmPeer = Substitute.For <INdmPeer>(); _ndmPeer.ProviderAddress.Returns(_providerAddress); _ndmPeer.NodeId.Returns(_providerNodeId); _providerService = new ProviderService(providerRepository, notifier, LimboLogs.Instance); _providerService.Add(_ndmPeer); _sessionRepository = new ConsumerSessionInMemoryRepository(); _sessionService = new SessionService(_providerService, depositProvider, dataAssetService, _sessionRepository, Timestamper.Default, notifier, LimboLogs.Instance); }
public void Setup() { DataAssetProvider provider = new DataAssetProvider(_providerAddress, "provider"); _asset = new DataAsset(Keccak.Compute("1"), "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Published); _closedAsset = new DataAsset(Keccak.Compute("2"), "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Closed); _assetUnderMaintenance = new DataAsset(Keccak.Compute("3"), "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.UnderMaintenance); _withKyc = new DataAsset(Keccak.Compute("4"), "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1)), provider, state: DataAssetState.Published, kycRequired: true); _deposit = new Deposit(Keccak.Zero, 1, 2, 3); _details = new DepositDetails(_deposit, _asset, Address.Zero, new byte[0], 1, new TransactionInfo[0]); INdmBlockchainBridge blockchainBridge = BlockchainBridgeBuilder.BuildABridge(); _wallet = new DevWallet(new WalletConfig(), LimboLogs.Instance); DepositService depositService = new DepositService(blockchainBridge, new AbiEncoder(), _wallet, Address.Zero); IConsumerSessionRepository sessionRepository = new ConsumerSessionInMemoryRepository(); DepositUnitsCalculator unitsCalculator = new DepositUnitsCalculator(sessionRepository, Timestamper.Default); DepositsInMemoryDb depositsInMemoryDb = new DepositsInMemoryDb(); depositsInMemoryDb.Add(_details); IProviderRepository providerRepository = new ProviderInMemoryRepository(depositsInMemoryDb); IConsumerNotifier notifier = new ConsumerNotifier(Substitute.For <INdmNotifier>()); DataAssetService dataAssetService = new DataAssetService(providerRepository, notifier, LimboLogs.Instance); IDepositUnitsCalculator depositUnitsCalculator = Substitute.For <IDepositUnitsCalculator>(); INdmPeer peer = Substitute.For <INdmPeer>(); peer.NodeId.Returns(TestItem.PublicKeyB); peer.ProviderAddress.Returns(_providerAddress); dataAssetService.AddDiscovered(_asset, peer); dataAssetService.AddDiscovered(_closedAsset, peer); dataAssetService.AddDiscovered(_assetUnderMaintenance, peer); dataAssetService.AddDiscovered(_withKyc, peer); _kycVerifier = Substitute.For <IKycVerifier>(); ProviderService providerService = new ProviderService(providerRepository, notifier, LimboLogs.Instance); providerService.Add(peer); _depositManager = new DepositManager(depositService, unitsCalculator, dataAssetService, _kycVerifier, providerService, new AbiEncoder(), new CryptoRandom(), _wallet, Substitute.For <IGasPriceService>(), new DepositDetailsInMemoryRepository(depositsInMemoryDb, depositUnitsCalculator), Timestamper.Default, LimboLogs.Instance, 6, false); }
public void Setup() { INdmPeer peer = Substitute.For <INdmPeer>(); peer.ProviderAddress.Returns(_providerAddress); _providerId = TestItem.PublicKeyB; peer.NodeId.Returns(_providerId); DataAssetProvider provider = new DataAssetProvider(_providerAddress, "name"); DataAsset newPendingAsset = new DataAsset(_newPendingAssetId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1), null), provider); DataAsset pendingAsset = new DataAsset(_pendingAssetId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1), null), provider); DataAsset rejectedAsset = new DataAsset(_rejectedAssetId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1), null), provider); DataAsset confirmedAsset = new DataAsset(_confirmedAssetId, "name", "desc", 1, DataAssetUnitType.Unit, 1000, 10000, new DataAssetRules(new DataAssetRule(1), null), provider); DepositsInMemoryDb db = new DepositsInMemoryDb(); ProviderInMemoryRepository providerRepository = new ProviderInMemoryRepository(db); _cdaRepo = new ConsumerDepositApprovalInMemoryRepository(); _ndmNotifier = Substitute.For <INdmNotifier>(); ConsumerNotifier notifier = new ConsumerNotifier(_ndmNotifier); DataAssetService dataAssetService = new DataAssetService(providerRepository, notifier, LimboLogs.Instance); dataAssetService.AddDiscovered(newPendingAsset, peer); dataAssetService.AddDiscovered(pendingAsset, peer); dataAssetService.AddDiscovered(rejectedAsset, peer); dataAssetService.AddDiscovered(confirmedAsset, peer); _providerService = new ProviderService(providerRepository, notifier, LimboLogs.Instance); _providerService.Add(peer); _service = new DepositApprovalService(dataAssetService, _providerService, _cdaRepo, Timestamper.Default, notifier, LimboLogs.Instance); _confirmedApproval = new DepositApproval(Keccak.Compute(Rlp.Encode(Rlp.Encode(_confirmedAssetId), Rlp.Encode(_consumerAddress)).Bytes), _confirmedAssetId, "asset", "kyc", _consumerAddress, _providerAddress, 1, DepositApprovalState.Confirmed); _pendingApproval = new DepositApproval(Keccak.Compute(Rlp.Encode(Rlp.Encode(_pendingAssetId), Rlp.Encode(_consumerAddress)).Bytes), _pendingAssetId, "asset", "kyc", _consumerAddress, _providerAddress, 1, DepositApprovalState.Pending); _rejectedApproval = new DepositApproval(Keccak.Compute(Rlp.Encode(Rlp.Encode(_rejectedAssetId), Rlp.Encode(_consumerAddress)).Bytes), _rejectedAssetId, "asset", "kyc", _consumerAddress, _providerAddress, 1, DepositApprovalState.Rejected); _cdaRepo.AddAsync(_confirmedApproval); _cdaRepo.AddAsync(_pendingApproval); _cdaRepo.AddAsync(_rejectedApproval); }