Skip to content

Commit 66e3c94

Browse files
committed
filter CVV field in the example
1 parent b6ecdb8 commit 66e3c94

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

examples/message_test.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package examples
33
import (
44
"fmt"
55
"os"
6+
"strings"
67
"testing"
78
"time"
89

@@ -151,16 +152,14 @@ func TestMessagePackingAndUnpacking(t *testing.T) {
151152
// use time from our example
152153
timeFromExample := "240812160140"
153154
processingTime, err := time.Parse("060102150405", timeFromExample)
154-
require.NotEmpty(t, processingTime)
155155
require.NoError(t, err)
156156

157157
// Set the message fields
158158
err = requestMessage.Marshal(&AuthorizationRequest{
159-
MTI: "0100",
160-
PAN: "4242424242424242",
161-
Amount: 1000,
162-
// TransactionDatetime: processingTime.Format("060102150405"),
163-
TransactionDatetime: time.Now().Format("060102150405"),
159+
MTI: "0100",
160+
PAN: "4242424242424242",
161+
Amount: 1000,
162+
TransactionDatetime: processingTime.Format("060102150405"),
164163
Currency: "840",
165164
CVV: "7890",
166165
ExpirationDate: "2512",
@@ -192,7 +191,7 @@ func TestMessagePackingAndUnpacking(t *testing.T) {
192191
require.Equal(t, "0100", authorizationRequest.MTI)
193192
require.Equal(t, "4242424242424242", authorizationRequest.PAN)
194193
require.Equal(t, int64(1000), authorizationRequest.Amount)
195-
// require.Equal(t, timeFromExample, authorizationRequest.TransactionDatetime)
194+
require.Equal(t, timeFromExample, authorizationRequest.TransactionDatetime)
196195
require.Equal(t, "840", authorizationRequest.Currency)
197196
require.Equal(t, "7890", authorizationRequest.CVV)
198197
require.Equal(t, "2512", authorizationRequest.ExpirationDate)
@@ -209,6 +208,17 @@ func TestMessagePackingAndUnpacking(t *testing.T) {
209208
// using %X to convert the byte slice to a hex string in uppercase
210209
require.Equal(t, examplePackedMessage, fmt.Sprintf("%X", packed))
211210

212-
err = iso8583.Describe(requestMessage, os.Stdout)
211+
// to make it right, let's filter the value of CVV field when we output it
212+
filterCVV := iso8583.FilterField("8", iso8583.FilterFunc(func(in string, data field.Field) string {
213+
if len(in) == 0 {
214+
return in
215+
}
216+
return in[0:1] + strings.Repeat("*", len(in)-1)
217+
}))
218+
219+
// don't forget to apply default filter
220+
filters := append(iso8583.DefaultFilters(), filterCVV)
221+
222+
err = iso8583.Describe(requestMessage, os.Stdout, filters...)
213223
require.NoError(t, err)
214224
}

0 commit comments

Comments
 (0)