public async Task GetBalanceChangesAsync_WithUnsupportedExodusTransactionType_ShouldThrow() { var tx = Transaction.Parse( ZcoinTransactionData.ZerocoinRemint, ZcoinNetworks.Instance.Regtest); var upsupportedId = int.MaxValue; var unsupported = new FakeExodusTransaction(TestAddress.Regtest1, TestAddress.Regtest2, upsupportedId, 1); #pragma warning disable CS0618 tx.SetExodusTransaction(unsupported); #pragma warning restore CS0618 await Assert.ThrowsAsync <TransactionException>( () => this.subject.GetBalanceChangesAsync(tx, CancellationToken.None) ); }
public async Task GetBalanceChangesAsync_WithSupportedType_ShouldSuccess() { // Arrange. var tx = Transaction.Parse( ZcoinTransactionData.ZerocoinRemint, ZcoinNetworks.Instance.Regtest); var exodus = new FakeExodusTransaction(TestAddress.Regtest1, TestAddress.Regtest2, this.supportedId, 0); #pragma warning disable CS0618 tx.SetExodusTransaction(exodus); #pragma warning restore CS0618 var address = TestAddress.Mainnet1; var amount = new PropertyAmount(10); var property = new PropertyId(2); var changes = new Collection <BalanceChange> { new BalanceChange(address, amount, property) }; var cancellationToken = new CancellationToken(false); this.defaultRetriever.GetBalanceChangesAsync ( Arg.Is <ExodusTransaction>(t => exodus == t), Arg.Is <CancellationToken>(c => c == cancellationToken) ).Returns(changes); // Act. var retrievedChanges = await this.subject.GetBalanceChangesAsync(tx, cancellationToken); // Assert. _ = this.defaultRetriever.Received(1).GetBalanceChangesAsync ( Arg.Is <ExodusTransaction>(t => exodus == t), Arg.Is <CancellationToken>(c => c == cancellationToken) ); Assert.Equal(changes, retrievedChanges); }