public void SetUsedLabelIncludePrivateFunds() { var selection = new LabelSelectionViewModel(Money.Parse("1.5")); var pockets = new List <Pocket>(); pockets.AddPocket(1.0M, out _, "Dan"); var privateCoins = new[] { BitcoinFactory.CreateSmartCoin(LabelTestExtensions.NewKey(anonymitySet: 999), 0.5m), BitcoinFactory.CreateSmartCoin(LabelTestExtensions.NewKey(anonymitySet: 999), 0.5m), }; var coinsView = new CoinsView(privateCoins.ToArray()); var pocket = new Pocket((SmartLabel.Empty, coinsView)); pockets.Add(pocket); selection.Reset(pockets.ToArray()); var output = selection.AutoSelectPockets("Dan"); selection.SetUsedLabel(output.SelectMany(x => x.Coins), privateThreshold: 10); Assert.True(selection.EnoughSelected); }
public void StillIncludePrivateFundsAfterSwap() { var selection = new LabelSelectionViewModel(Money.Parse("1.0")); var pockets = new List <Pocket>(); var privateCoin = LabelTestExtensions.CreateCoin(0.8m, "", 999); var privatePocket = new Pocket((CoinPocketHelper.PrivateFundsText, new CoinsView(new[] { privateCoin }))); pockets.Add(privatePocket); pockets.AddPocket(0.2M, out var pocket2, "Dan"); pockets.AddPocket(0.1M, out var pocket3, "Lucas"); selection.Reset(pockets.ToArray()); var usedCoins = new List <SmartCoin> { privateCoin }; usedCoins.AddRange(pocket2.Coins); selection.SetUsedLabel(usedCoins, 10); var output = selection.GetUsedPockets(); Assert.Contains(privatePocket, output); Assert.Contains(pocket2, output); Assert.DoesNotContain(pocket3, output); Assert.True(selection.EnoughSelected); selection.SwapLabel(selection.GetLabel("Lucas")); selection.SwapLabel(selection.GetLabel("Lucas")); Assert.True(selection.EnoughSelected); }
public void SetUsedLabelIgnoreCase() { var selection = new LabelSelectionViewModel(Money.Parse("1.0")); var pockets = new List <Pocket>(); pockets.AddPocket(1.0M, out var pocket1, "Dan"); pockets.AddPocket(1.0M, out var pocket2, "Lucas"); selection.Reset(pockets.ToArray()); var output = selection.AutoSelectPockets("Dan"); Assert.Contains(pocket1, output); Assert.DoesNotContain(pocket2, output); var hdpk = LabelTestExtensions.NewKey("dan"); var usedCoin = BitcoinFactory.CreateSmartCoin(hdpk, 1.0M); selection.SetUsedLabel(new[] { usedCoin }, privateThreshold: 10); Assert.Contains(selection.GetLabel("Lucas"), selection.LabelsBlackList); Assert.Contains(selection.GetLabel("Dan"), selection.LabelsWhiteList); }