def test_Disputes_CreateSettlementTransfer(self):
        self.refreshClientDisputes()

        dispute = None

        for d in self._clientDisputes:
            if (d.Status == DisputeStatus.CLOSED
                    and d.DisputeType == DisputeType.NOT_CONTESTABLE):
                dispute = d
                break

        self.assertIsNotNone(
            dispute,
            'Cannot test creating settlement transfer because there\'s no closed dispute in the disputes list.'
        )

        repudiationId = self.sdk.disputes.GetTransactions(dispute.Id)[0].Id
        repudiation = self.sdk.disputes.GetRepudiation(repudiationId)

        debitedFunds = Money()
        fees = Money()
        debitedFunds.Currency = 'EUR'
        debitedFunds.Amount = 1
        fees.Currency = 'EUR'
        fees.Amount = 0

        post = Transfer()
        post.AuthorId = repudiation.AuthorId
        post.DebitedFunds = debitedFunds
        post.Fees = fees

        result = self.sdk.disputes.CreateSettlementTransfer(
            post, repudiationId)

        self.assertIsNotNone(result)
    def test_Disputes_CreateSettlementTransfer(self):
        self.refreshClientDisputes()

        dispute = None

        for d in self._clientDisputes:
            if (d.Status == DisputeStatus.CLOSED and d.DisputeType == DisputeType.NOT_CONTESTABLE):
                dispute = d
                break

        self.assertIsNotNone(dispute, 'Cannot test creating settlement transfer because there\'s no closed dispute in the disputes list.')

        repudiationId = self.sdk.disputes.GetTransactions(dispute.Id)[0].Id
        repudiation = self.sdk.disputes.GetRepudiation(repudiationId)

        debitedFunds = Money()
        fees = Money()
        debitedFunds.Currency = 'EUR'
        debitedFunds.Amount = 1
        fees.Currency = 'EUR'
        fees.Amount = 0

        post = Transfer()
        post.AuthorId = repudiation.AuthorId
        post.DebitedFunds = debitedFunds
        post.Fees = fees

        result = self.sdk.disputes.CreateSettlementTransfer(post, repudiationId)

        self.assertIsNotNone(result)
    def test_Disputes_ContestDispute(self):
        self.refreshClientDisputes()

        notContestedDispute = None

        for d in self._clientDisputes:
            if ((d.Status == DisputeStatus.PENDING_CLIENT_ACTION
                 or d.Status == DisputeStatus.REOPENED_PENDING_CLIENT_ACTION)
                    and (d.DisputeType == DisputeType.CONTESTABLE
                         or d.DisputeType == DisputeType.RETRIEVAL)):
                notContestedDispute = d
                break

        self.assertIsNotNone(
            notContestedDispute,
            'Cannot test contesting dispute because there\'s no dispute that can be contested in the disputes list.'
        )

        result = None

        contestedFunds = None
        if (notContestedDispute.Status == DisputeStatus.PENDING_CLIENT_ACTION):
            contestedFunds = Money()
            contestedFunds.Amount = 100
            contestedFunds.Currency = 'EUR'

        result = self.sdk.disputes.ContestDispute(contestedFunds,
                                                  notContestedDispute.Id)

        self.assertIsNotNone(result)
        self.assertEqual(result.Id, notContestedDispute.Id)
    def test_Disputes_ContestDispute(self):
        self.refreshClientDisputes()

        notContestedDispute = None

        for d in self._clientDisputes:
            if ((d.Status == DisputeStatus.PENDING_CLIENT_ACTION or d.Status == DisputeStatus.REOPENED_PENDING_CLIENT_ACTION)
                and (d.DisputeType == DisputeType.CONTESTABLE or d.DisputeType == DisputeType.RETRIEVAL)):
                notContestedDispute = d
                break

        self.assertIsNotNone(notContestedDispute, 'Cannot test contesting dispute because there\'s no dispute that can be contested in the disputes list.')

        result = None

        contestedFunds = None
        if (notContestedDispute.Status == DisputeStatus.PENDING_CLIENT_ACTION):
            contestedFunds = Money()
            contestedFunds.Amount = 100
            contestedFunds.Currency = 'EUR'

        result = self.sdk.disputes.ContestDispute(contestedFunds, notContestedDispute.Id)

        self.assertIsNotNone(result)
        self.assertEqual(result.Id, notContestedDispute.Id)