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  }