github.com/moov-io/imagecashletter@v0.10.1/validators_test.go (about)

     1  // Copyright 2020 The Moov Authors
     2  // Use of this source code is governed by an Apache License
     3  // license that can be found in the LICENSE file.
     4  
     5  package imagecashletter
     6  
     7  import (
     8  	"fmt"
     9  	"math"
    10  	"testing"
    11  
    12  	"github.com/stretchr/testify/require"
    13  )
    14  
    15  func TestValidSize(t *testing.T) {
    16  	require.True(t, validSize(10))
    17  	require.True(t, validSize(1e7))
    18  
    19  	require.False(t, validSize(1e8+1))
    20  	require.False(t, validSize(1e9))
    21  	require.False(t, validSize(math.MaxInt))
    22  
    23  	t.Run("converters", func(t *testing.T) {
    24  		c := &converters{}
    25  
    26  		// Do nothing if the request is too large
    27  		require.Equal(t, "a", c.alphaField("a", 1e9))
    28  		require.Equal(t, "7", c.numericField(7, 1e9))
    29  		require.Equal(t, "b", c.nbsmField("b", 1e9))
    30  		require.Equal(t, "c", c.stringField("c", 1e9))
    31  	})
    32  
    33  	t.Run("don't grow", func(t *testing.T) {
    34  		cdAddendumB := &CheckDetailAddendumB{}
    35  		cdAddendumB.LengthImageReferenceKey = fmt.Sprintf("%0.0f", 1e9)
    36  		require.Equal(t, "0               1000                        ", cdAddendumB.String())
    37  
    38  		ivData := &ImageViewData{}
    39  		ivData.LengthImageReferenceKey = fmt.Sprintf("%0.0f", 1e9)
    40  		ivData.LengthDigitalSignature = fmt.Sprintf("%0.0f", 1e9)
    41  		ivData.LengthImageData = fmt.Sprintf("%0.0f", 1e9)
    42  		expected := "00000000000010101                                                                 0                1000100001000000"
    43  		require.Equal(t, expected, ivData.String())
    44  
    45  		rdAddendumC := &ReturnDetailAddendumC{}
    46  		rdAddendumC.LengthImageReferenceKey = fmt.Sprintf("%0.0f", 1e9)
    47  		expected = "0               1000                        "
    48  		require.Equal(t, expected, rdAddendumC.String())
    49  
    50  		ug := &UserGeneral{}
    51  		ug.LengthUserData = fmt.Sprintf("%0.0f", 1e9)
    52  		expected = "0                                   1000000"
    53  		require.Equal(t, expected, ug.String())
    54  	})
    55  }