Exemplo n.º 1
0
    public void BlackListHighlightsDealWithMultipleOverlapsCorrectly()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("1.0"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, "Target", "Dan");
        pockets.AddPocket(1.0M, out var pocket2, "Target");
        pockets.AddPocket(1.0M, out var pocket3, "Target", "Roland");

        selection.Reset(pockets.ToArray());

        selection.SwapLabel(selection.GetLabel("Target"));

        Assert.Contains(selection.GetLabel("Target"), selection.LabelsBlackList);
        Assert.Contains(selection.GetLabel("Roland"), selection.LabelsBlackList);
        Assert.Contains(selection.GetLabel("Dan"), selection.LabelsBlackList);

        selection.GetLabel("Dan").IsPointerOver = true;

        Assert.True(selection.GetLabel("Dan").IsHighlighted);
        Assert.False(selection.GetLabel("Roland").IsHighlighted);
        Assert.True(selection.GetLabel("Target").IsHighlighted);

        var output = selection.GetUsedPockets();

        Assert.DoesNotContain(pocket1, output);
        Assert.DoesNotContain(pocket2, output);
        Assert.DoesNotContain(pocket3, output);
    }
Exemplo n.º 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);
    }
Exemplo n.º 3
0
    public PrivacyControlViewModel(Wallet wallet, TransactionInfo transactionInfo, IEnumerable <SmartCoin>?usedCoins, bool isSilent, Money?targetAmount = null)
    {
        _wallet    = wallet;
        _isSilent  = isSilent;
        _usedCoins = usedCoins;

        LabelSelection = new LabelSelectionViewModel(targetAmount ?? transactionInfo.Amount);

        SetupCancel(enableCancel: false, enableCancelOnEscape: true, enableCancelOnPressed: false);
        EnableBack = true;

        NextCommand = ReactiveCommand.Create(() => Complete(LabelSelection.GetUsedPockets()), LabelSelection.WhenAnyValue(x => x.EnoughSelected));
    }
Exemplo n.º 4
0
    public void IncludePrivateFunds()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("2.5"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, CoinPocketHelper.PrivateFundsText);
        pockets.AddPocket(2.0M, out var pocket2, "Dan");

        selection.Reset(pockets.ToArray());

        Assert.True(selection.EnoughSelected);

        var output = selection.GetUsedPockets();

        Assert.Contains(pocket1, output);
        Assert.Contains(pocket2, output);
    }
Exemplo n.º 5
0
    public void OutPutMatchesWhiteListScenario1()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("1.0"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, "Target", "Dan", "Roland");
        pockets.AddPocket(1.0M, out var pocket2, "Dan");

        selection.Reset(pockets.ToArray());

        selection.SwapLabel(selection.GetLabel("Dan"));

        var output = selection.GetUsedPockets();

        Assert.DoesNotContain(pocket1, output);
        Assert.DoesNotContain(pocket2, output);
    }
Exemplo n.º 6
0
    public void AllWhitelistPocketsAreOutput()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("1.0"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, "Target", "Dan", "Roland");
        pockets.AddPocket(1.0M, out var pocket2, "Target");
        pockets.AddPocket(1.0M, out var pocket3, "David", "Adam", "Lucas");
        pockets.AddPocket(1.0M, out var pocket4, "Jumar");

        selection.Reset(pockets.ToArray());

        var output = selection.GetUsedPockets();

        Assert.Contains(pocket1, output);
        Assert.Contains(pocket2, output);
        Assert.Contains(pocket3, output);
        Assert.Contains(pocket4, output);
    }
Exemplo n.º 7
0
    public void UseOnlyPrivateFunds()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("1.0"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, CoinPocketHelper.PrivateFundsText);
        pockets.AddPocket(2.0M, out var pocket2, "Dan");

        selection.Reset(pockets.ToArray());

        selection.SwapLabel(selection.GetLabel("Dan"));

        Assert.Contains(selection.GetLabel("Dan"), selection.LabelsBlackList);
        Assert.True(selection.EnoughSelected);

        var output = selection.GetUsedPockets();

        Assert.DoesNotContain(pocket2, output);
        Assert.Contains(pocket1, output);
    }
Exemplo n.º 8
0
    public void WhiteListSwapsGroupedLabelsInOtherPocketsThatContainTargetLabelExceptThoseAvailableInOtherPockets()
    {
        var selection = new LabelSelectionViewModel(Money.Parse("1.0"));

        var pockets = new List <Pocket>();

        pockets.AddPocket(1.0M, out var pocket1, "Target", "Dan");
        pockets.AddPocket(1.0M, out var pocket2, "Target");
        pockets.AddPocket(1.0M, out var pocket3, "Target", "Roland");

        selection.Reset(pockets.ToArray());

        selection.SwapLabel(selection.GetLabel("Dan"));

        Assert.DoesNotContain(selection.GetLabel("Target"), selection.LabelsBlackList);
        Assert.DoesNotContain(selection.GetLabel("Roland"), selection.LabelsBlackList);
        Assert.Contains(selection.GetLabel("Dan"), selection.LabelsBlackList);

        var output = selection.GetUsedPockets();

        Assert.DoesNotContain(pocket1, output);
        Assert.Contains(pocket2, output);
        Assert.Contains(pocket3, output);
    }