def test_generatePayzenId_newPaymentTransaction(self):
        transaction = self.createPaymentTransaction()
        transaction_url = transaction.getId().replace("-", "_")

        integration_site = self.portal.restrictedTraverse(
            self.portal.portal_preferences.getPreferredPayzenIntegrationSite()
        )

        # Integration tool returns category value as mapping if nothing is set
        mapping = integration_site.getCategoryFromMapping("Causality/%s" % transaction_url)
        self.assertEquals(mapping, "causality/%s" % transaction_url)
        category = integration_site.getMappingFromCategory(mapping)
        self.assertEquals(category, "Causality/%s" % transaction_url)

        transaction_date, payzen_id = transaction.PaymentTransaction_generatePayzenId()

        mapping = integration_site.getCategoryFromMapping("Causality/%s" % transaction_url)
        self.assertEquals(mapping, "%s_%s" % (transaction_date.asdatetime().strftime("%Y%m%d"), payzen_id))
        category = integration_site.getMappingFromCategory("causality/%s" % mapping)
        # XXX Not indexed yet
        #     self.assertEquals(category, 'Causality/%s' % transaction_url)

        self.assertNotEquals(payzen_id, None)
        self.assertEquals(len(payzen_id), 6)
        self.assertEquals(str(int(payzen_id)).zfill(6), payzen_id)

        self.assertNotEquals(transaction_date, None)
        self.assertEquals(transaction_date.timezone(), "UTC")
        self.assertEquals(
            transaction_date.asdatetime().strftime("%Y%m%d"), DateTime().toZone("UTC").asdatetime().strftime("%Y%m%d")
        )
    def test_getPayzenId_manualMappedPaymentTransaction(self):
        transaction = self.createPaymentTransaction()
        integration_site = self.portal.restrictedTraverse(
            self.portal.portal_preferences.getPreferredPayzenIntegrationSite()
        )

        try:
            mapping = integration_site.getCategoryFromMapping(
                "Causality/%s" % transaction.getId().replace("-", "_"), create_mapping_line=True, create_mapping=True
            )
        except ValueError:
            pass
        integration_site.Causality[transaction.getId().replace("-", "_")].setDestinationReference("20010101_123456")

        transaction_date, payzen_id = transaction.PaymentTransaction_getPayzenId()
        self.assertEquals(payzen_id, "123456")
        self.assertEquals(transaction_date, DateTime("20010101"))