53 lines
2.3 KiB
Go
53 lines
2.3 KiB
Go
package creditcall
|
|
|
|
import (
|
|
"gitea.futuresens.co.uk/futuresens/hardlink/paymentstatus"
|
|
"testing"
|
|
)
|
|
|
|
func TestProgressStatus(t *testing.T) {
|
|
for _, test := range []struct{ source, value, want string }{
|
|
{"UPDATE", "CardRequested", paymentstatus.PresentCard},
|
|
{"UPDATE", "ProvideCard", paymentstatus.PresentCard},
|
|
{"UPDATE", "InsertOrSwipeCard", paymentstatus.PresentCard},
|
|
{"UPDATE", "InsertOrContactless", paymentstatus.PresentCard},
|
|
{"UPDATE", "InsertCard", paymentstatus.InsertCard},
|
|
{"UPDATE", "SwipeCard", paymentstatus.SwipeCard},
|
|
{"UPDATE", "CardRemovalRequested", paymentstatus.RemoveCard},
|
|
{"UPDATE", "CardRemovalEnforced", paymentstatus.RemoveCard},
|
|
{"UPDATE", "PinEntryStarted", paymentstatus.EnterPIN},
|
|
{"UPDATE", "PinEntryPrompt", paymentstatus.EnterPIN},
|
|
{"UPDATE", "PinEntryInProgress", paymentstatus.EnterPIN},
|
|
{"UPDATE", "PinEntryFailed", paymentstatus.EnterPINAgain},
|
|
{"UPDATE", "PinEntrySuccessful", paymentstatus.Processing},
|
|
{"UPDATE", "TransactionStarted", paymentstatus.Processing},
|
|
{"UPDATE", "OnlineAuthRequested", paymentstatus.Processing},
|
|
{"UPDATE", "OnlineAuthorizeRequest", paymentstatus.Processing},
|
|
{"UPDATE", "OnlineAuthCompleted", paymentstatus.PleaseWait},
|
|
{"CARD_STATUS", "Inserted", paymentstatus.DoNotRemoveCard},
|
|
{"CARD_STATUS", "Tapped", paymentstatus.Processing},
|
|
{"CARD_STATUS", "Swiped", paymentstatus.Processing},
|
|
{"CARD_STATUS", "Removed", ""},
|
|
{"SIGNATURE", "Requested", paymentstatus.SignatureRequired},
|
|
{"PAUSE", "Paused", paymentstatus.PleaseWait},
|
|
{"UPDATE", "Approved", ""}, {"UPDATE", "Declined", ""},
|
|
{"UPDATE", "unknown", ""}, {"PAN", "CardRequested", ""},
|
|
} {
|
|
if got := ProgressStatus(test.source, test.value); got != test.want {
|
|
t.Errorf("ProgressStatus(%q, %q) = %q, want %q", test.source, test.value, got, test.want)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestMaskedCardNumber(t *testing.T) {
|
|
for _, test := range []struct{ value, want string }{
|
|
{"123456******1234", "123456******1234"}, {"************1234", "************1234"},
|
|
{"1234567890123456", ""}, {"1234567890123456****", ""}, {"3132333435363738", ""},
|
|
{"%B1234567890123456^NAME", ""}, {"", ""},
|
|
} {
|
|
if got := MaskedCardNumber(test.value); got != test.want {
|
|
t.Errorf("MaskedCardNumber(%q) = %q, want %q", test.value, got, test.want)
|
|
}
|
|
}
|
|
}
|