コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }