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 }