github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/defaultimpl/DefaultMarshaller_test.go (about)

     1  package defaultimpl
     2  
     3  import (
     4  	"strconv"
     5  	"testing"
     6  )
     7  
     8  type jsonToken struct {
     9  	Date int
    10  	Iban string
    11  }
    12  
    13  type extendedToken struct {
    14  	Date   int
    15  	Iban   string
    16  	Amount int
    17  }
    18  
    19  func TestUnmarshalWithExtraFields(t *testing.T) {
    20  	defaultMarshaller, _ := NewDefaultMarshaller()
    21  
    22  	iban := "barbarbarbarfoo"
    23  	date := 123
    24  
    25  	token := extendedToken{date, iban, 1337}
    26  
    27  	json, _ := defaultMarshaller.Marshal(token)
    28  
    29  	var jToken jsonToken
    30  	defaultMarshaller.Unmarshal(json, &jToken)
    31  
    32  	if token.Date != jToken.Date || token.Iban != jToken.Iban {
    33  		t.Fatal("TestUnmarshalWithExtraFields : expected (" + strconv.Itoa(token.Date) + ", " + token.Iban + ") got (" + strconv.Itoa(jToken.Date) + ", " + jToken.Iban + ")")
    34  	}
    35  }