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 }