github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/merchant/tokens/DeleteParams_test.go (about) 1 package tokens 2 3 import ( 4 "runtime" 5 "testing" 6 7 "github.com/Ingenico-ePayments/connect-sdk-go/communicator" 8 ) 9 10 func TestDeleteParamsToRequestParameters(t *testing.T) { 11 lParams := &DeleteParams{} 12 paramList := communicator.RequestParams{} 13 14 paramRequestCmp(t, lParams, paramList) 15 16 { 17 lParams.MandateCancelDate = new(string) 18 *lParams.MandateCancelDate = "20160610" 19 20 param, _ := communicator.NewRequestParam("mandateCancelDate", "20160610") 21 paramList = append(paramList, *param) 22 } 23 paramRequestCmp(t, lParams, paramList) 24 25 { 26 lParams.MandateCancelDate = new(string) 27 *lParams.MandateCancelDate = "" 28 29 param, _ := communicator.NewRequestParam("mandateCancelDate", "") 30 paramList = communicator.RequestParams{} 31 paramList = append(paramList, *param) 32 } 33 paramRequestCmp(t, lParams, paramList) 34 35 { 36 lParams.MandateCancelDate = nil 37 38 paramList = communicator.RequestParams{} 39 } 40 paramRequestCmp(t, lParams, paramList) 41 } 42 43 func paramRequestCmp(t *testing.T, a communicator.ParamRequest, b communicator.RequestParams) { 44 params := a.ToRequestParameters() 45 46 if requestParamsCmp(params, b) == false { 47 buf := make([]byte, 1<<16) 48 runtime.Stack(buf, true) 49 t.Fatal("paramRequestCmp failed on equality", params, b, string(buf)) 50 } 51 } 52 53 func requestParamsCmp(a, b communicator.RequestParams) bool { 54 if a == nil && b == nil { 55 return true 56 } 57 58 if a == nil || b == nil { 59 return false 60 } 61 62 if len(a) != len(b) { 63 return false 64 } 65 66 for i := range a { 67 if a[i] != b[i] { 68 return false 69 } 70 } 71 72 return true 73 }