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

     1  package imagecashletter
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  )
     8  
     9  func TestCashLetterPanics(t *testing.T) {
    10  	var cl *CashLetter
    11  
    12  	require.Nil(t, cl.GetBundles())
    13  	require.Nil(t, cl.GetRoutingNumberSummary())
    14  	require.Nil(t, cl.GetCreditItems())
    15  }
    16  
    17  // TestCashLetterNoBundle validates no Bundle when CashLetterHeader.RecordTypeIndicator = "N"
    18  func TestCashLetterNoBundle(t *testing.T) {
    19  	// Create CheckDetail
    20  	cd := mockCheckDetail()
    21  	cd.AddCheckDetailAddendumA(mockCheckDetailAddendumA())
    22  	cd.AddCheckDetailAddendumB(mockCheckDetailAddendumB())
    23  	cd.AddCheckDetailAddendumC(mockCheckDetailAddendumC())
    24  	cd.AddImageViewDetail(mockImageViewDetail())
    25  	cd.AddImageViewData(mockImageViewData())
    26  	cd.AddImageViewAnalysis(mockImageViewAnalysis())
    27  	bundle := NewBundle(mockBundleHeader())
    28  	bundle.AddCheckDetail(cd)
    29  
    30  	// Create CashLetter
    31  	cl := NewCashLetter(mockCashLetterHeader())
    32  	cl.GetHeader().RecordTypeIndicator = "N"
    33  	cl.AddBundle(bundle)
    34  	err := cl.Create()
    35  	var e *CashLetterError
    36  	require.ErrorAs(t, err, &e)
    37  	require.Equal(t, "RecordTypeIndicator", e.FieldName)
    38  }
    39  
    40  // TestCashLetterNoRoutingNumberSummary validates no Bundle when CashLetterHeader.CollectionTypeIndicator is not
    41  // 00, 01, 02
    42  func TestCashLetterRoutingNumberSummary(t *testing.T) {
    43  	// Create CheckDetail
    44  	cd := mockCheckDetail()
    45  	cd.AddCheckDetailAddendumA(mockCheckDetailAddendumA())
    46  	cd.AddCheckDetailAddendumB(mockCheckDetailAddendumB())
    47  	cd.AddCheckDetailAddendumC(mockCheckDetailAddendumC())
    48  	cd.AddImageViewDetail(mockImageViewDetail())
    49  	cd.AddImageViewData(mockImageViewData())
    50  	cd.AddImageViewAnalysis(mockImageViewAnalysis())
    51  	bundle := NewBundle(mockBundleHeader())
    52  	bundle.AddCheckDetail(cd)
    53  
    54  	// Create CashLetter
    55  	cl := NewCashLetter(mockCashLetterHeader())
    56  	cl.GetHeader().CollectionTypeIndicator = "03"
    57  	cl.AddBundle(bundle)
    58  	rns := mockRoutingNumberSummary()
    59  	cl.AddRoutingNumberSummary(rns)
    60  	err := cl.Create()
    61  	var e *CashLetterError
    62  	require.ErrorAs(t, err, &e)
    63  	require.Equal(t, "CollectionTypeIndicator", e.FieldName)
    64  }