1+ package com .intuit .ipp .services ;
2+
3+ import com .intuit .ipp .core .IEntity ;
4+ import com .intuit .ipp .data .Account ;
5+ import com .intuit .ipp .data .Attachable ;
6+ import com .intuit .ipp .data .BatchItemRequest ;
7+ import com .intuit .ipp .data .Customer ;
8+ import com .intuit .ipp .data .OperationEnum ;
9+ import com .intuit .ipp .exception .FMSException ;
10+ import org .testng .Assert ;
11+ import org .testng .annotations .BeforeMethod ;
12+ import org .testng .annotations .Test ;
13+
14+ import java .util .ArrayList ;
15+ import java .util .List ;
16+
17+ public class BatchOperationTest {
18+
19+ private BatchOperation batchOperation ;
20+
21+ @ BeforeMethod
22+ public void setUp () {
23+ batchOperation = new BatchOperation ();
24+ }
25+
26+ @ Test
27+ void testAddEntity () {
28+ int batchSize = 2 ;
29+
30+ for (int i =0 ; i <batchSize ; i ++) {
31+ String bid = "123" + i ;
32+ Customer entity = new Customer ();
33+ OperationEnum create = OperationEnum .CREATE ;
34+
35+ batchOperation .addEntity (entity , create , bid );
36+
37+ Assert .assertNotNull (batchOperation .getBIds ());
38+ Assert .assertNotNull (batchOperation .getBatchItemRequests ());
39+ Assert .assertEquals (batchOperation .getBIds ().size (), i +1 );
40+ Assert .assertEquals (batchOperation .getBatchItemRequests ().size (), i +1 );
41+
42+ BatchItemRequest batchItemRequest = batchOperation .getBatchItemRequests ().get (i );
43+ Assert .assertNotNull (batchItemRequest );
44+ Assert .assertEquals (batchItemRequest .getBId (), bid );
45+ Assert .assertNotNull (batchItemRequest .getIntuitObject ());
46+ Assert .assertEquals (batchItemRequest .getOperation (), create );
47+
48+ List <String > bids = batchOperation .getBIds ();
49+ Assert .assertNotNull (bids );
50+ Assert .assertEquals (bids .size (), i +1 );
51+ }
52+ }
53+
54+ @ Test
55+ void testAddQuery () {
56+ int batchSize = 2 ;
57+
58+ for (int i =0 ; i <batchSize ; i ++) {
59+ String bid = "123" + i ;
60+ String query = "Select * from Invoice " + i ;
61+
62+ batchOperation .addQuery (query , bid );
63+
64+ Assert .assertNotNull (batchOperation .getBIds ());
65+ Assert .assertNotNull (batchOperation .getBatchItemRequests ());
66+ Assert .assertEquals (batchOperation .getBIds ().size (), i +1 );
67+ Assert .assertEquals (batchOperation .getBatchItemRequests ().size (), i +1 );
68+
69+ BatchItemRequest batchItemRequest = batchOperation .getBatchItemRequests ().get (i );
70+ Assert .assertNotNull (batchItemRequest );
71+ Assert .assertEquals (batchItemRequest .getBId (), bid );
72+ Assert .assertNotNull (batchItemRequest .getQuery ());
73+ Assert .assertEquals (batchItemRequest .getQuery (), query );
74+
75+ List <String > bids = batchOperation .getBIds ();
76+ Assert .assertNotNull (bids );
77+ Assert .assertEquals (bids .size (), i +1 );
78+ }
79+ }
80+
81+ @ Test
82+ void testReportQuery () {
83+ int batchSize = 2 ;
84+
85+ for (int i =0 ; i <batchSize ; i ++) {
86+ String bid = "123" + i ;
87+ String reportQuery = "sample report query " + i ;
88+
89+ batchOperation .addReportQuery (reportQuery , bid );
90+
91+ Assert .assertNotNull (batchOperation .getBIds ());
92+ Assert .assertNotNull (batchOperation .getBatchItemRequests ());
93+ Assert .assertEquals (batchOperation .getBIds ().size (), i +1 );
94+ Assert .assertEquals (batchOperation .getBatchItemRequests ().size (), i +1 );
95+
96+ BatchItemRequest batchItemRequest = batchOperation .getBatchItemRequests ().get (i );
97+ Assert .assertNotNull (batchItemRequest );
98+ Assert .assertEquals (batchItemRequest .getBId (), bid );
99+ Assert .assertNotNull (batchItemRequest .getReportQuery ());
100+ Assert .assertEquals (batchItemRequest .getReportQuery (), reportQuery );
101+
102+ List <String > bids = batchOperation .getBIds ();
103+ Assert .assertNotNull (bids );
104+ Assert .assertEquals (bids .size (), i +1 );
105+ }
106+ }
107+
108+ @ Test (expectedExceptions = FMSException .class )
109+ void testCDCQuery_NullEntities () throws FMSException {
110+ batchOperation .addCDCQuery (null , "" , "" );
111+ }
112+
113+ @ Test (expectedExceptions = FMSException .class )
114+ void testCDCQuery_EmptyEntities () throws FMSException {
115+ List <IEntity > empty = new ArrayList <>();
116+ batchOperation .addCDCQuery (empty , "" , "" );
117+ }
118+
119+ @ Test (expectedExceptions = FMSException .class )
120+ void testCDCQuery_NullCDCDate () throws FMSException {
121+ List <IEntity > entities = new ArrayList <>();
122+ entities .add (new Account ());
123+ entities .add (new Attachable ());
124+
125+ batchOperation .addCDCQuery (entities , null , "" );
126+ }
127+
128+ @ Test (expectedExceptions = FMSException .class )
129+ void testCDCQuery_EmptyCDCDate () throws FMSException {
130+ List <IEntity > entities = new ArrayList <>();
131+ entities .add (new Account ());
132+ entities .add (new Attachable ());
133+
134+ batchOperation .addCDCQuery (entities , "" , "" );
135+ }
136+
137+ @ Test (expectedExceptions = FMSException .class )
138+ void testCDCQuery_InvalidDate () throws FMSException {
139+ String invalidDate = "2000~01~01" ;
140+
141+ List <IEntity > entities = new ArrayList <>();
142+ entities .add (new Account ());
143+ entities .add (new Attachable ());
144+
145+ batchOperation .addCDCQuery (entities , invalidDate , "" );
146+ }
147+
148+ @ Test
149+ void testCDCQuery () throws FMSException {
150+ String bid = "123" ;
151+ String cdcDate = "2000-01-01T00:00:00.000-0700" ;
152+
153+ List <IEntity > entities = new ArrayList <>();
154+ entities .add (new Account ());
155+ entities .add (new Attachable ());
156+
157+ batchOperation .addCDCQuery (entities , cdcDate , bid );
158+
159+ Assert .assertNotNull (batchOperation .getBIds ());
160+ Assert .assertNotNull (batchOperation .getBatchItemRequests ());
161+ Assert .assertEquals (batchOperation .getBIds ().size (), 1 );
162+ Assert .assertEquals (batchOperation .getBatchItemRequests ().size (), 1 );
163+
164+ BatchItemRequest batchItemRequest = batchOperation .getBatchItemRequests ().get (0 );
165+ Assert .assertNotNull (batchItemRequest );
166+ Assert .assertEquals (batchItemRequest .getBId (), bid );
167+ Assert .assertNotNull (batchItemRequest .getCDCQuery ());
168+ Assert .assertNotEquals (batchItemRequest .getCDCQuery ().getEntities (), Account .class .getSimpleName () + Attachable .class .getSimpleName ());
169+
170+ List <String > bids = batchOperation .getBIds ();
171+ Assert .assertNotNull (bids );
172+ Assert .assertEquals (bids .size (), 1 );
173+ }
174+ }
0 commit comments