package auditloghandler

import (
	"testing"

	"github.com/pingcap/dbaas/billing2/forms"
	"github.com/stretchr/testify/suite"
)

type HelperTestSuite struct {
	suite.Suite
}

func TestHelper(t *testing.T) {
	suite.Run(t, new(HelperTestSuite))
}

func (s *HelperTestSuite) TestStripePaymentMethod2AuditLogDetails() {
	assert := s.Assert()
	email := "1@1.co"
	t1 := &forms.StripePaymentMethod{
		ID: "3",
		Card: &forms.Card{
			Brand:       "1",
			Country:     "CN",
			ExpMonth:    12,
			ExpYear:     22,
			Fingerprint: "Dsadfsafasd",
			Funding:     "x",
			Last4:       "3333",
		},
		BillingDetails: &forms.BillingDetails{
			Address: &forms.Address{
				City:       "city",
				Country:    "CN",
				Line1:      "1",
				Line2:      "2",
				PostalCode: "2131232",
				State:      "2",
			},
			Email: &email,
			Name:  "222",
		},
	}
	s1 := StripePaymentMethod2AuditLogDetails(t1)
	assert.Equal(map[string]string{
		"city": "city", "country": "CN", "expiration_date": "12/22", "payment_method_id": "3", "card_number_last4": "3333",
		"address1": "1", "address2": "2", "state": "2", "name": "222",
	}, s1.Build())
	s2 := StripePaymentMethod2AuditLogDetails(&forms.StripePaymentMethod{})
	assert.Nil(s2)
	s3 := StripePaymentMethod2AuditLogDetails(nil)
	assert.Nil(s3)
}
