1+ package org .javaee7 .batch .chunk .csv .database ;
2+
3+ import org .javaee7 .util .BatchTestHelper ;
4+ import org .jboss .arquillian .container .test .api .Deployment ;
5+ import org .jboss .arquillian .junit .Arquillian ;
6+ import org .jboss .shrinkwrap .api .ArchivePaths ;
7+ import org .jboss .shrinkwrap .api .ShrinkWrap ;
8+ import org .jboss .shrinkwrap .api .asset .EmptyAsset ;
9+ import org .jboss .shrinkwrap .api .spec .WebArchive ;
10+ import org .junit .Test ;
11+ import org .junit .runner .RunWith ;
12+
13+ import javax .batch .operations .JobOperator ;
14+ import javax .batch .runtime .*;
15+ import javax .persistence .EntityManager ;
16+ import javax .persistence .PersistenceContext ;
17+ import javax .persistence .Query ;
18+ import java .util .List ;
19+ import java .util .Map ;
20+ import java .util .Properties ;
21+
22+ import static org .junit .Assert .assertEquals ;
23+
24+ /**
25+ * @author Roberto Cortez
26+ */
27+ @ RunWith (Arquillian .class )
28+ public class BatchCSVDatabaseTest {
29+ @ PersistenceContext
30+ private EntityManager entityManager ;
31+
32+ @ Deployment
33+ public static WebArchive createDeployment () {
34+ WebArchive war = ShrinkWrap .create (WebArchive .class )
35+ .addClass (BatchTestHelper .class )
36+ .addPackage ("org.javaee7.batch.chunk.csv.database" )
37+ .addAsWebInfResource (EmptyAsset .INSTANCE , ArchivePaths .create ("beans.xml" ))
38+ .addAsResource ("META-INF/batch-jobs/myJob.xml" )
39+ .addAsResource ("META-INF/persistence.xml" )
40+ .addAsResource ("META-INF/create.sql" )
41+ .addAsResource ("META-INF/drop.sql" )
42+ .addAsResource ("META-INF/mydata.csv" );
43+ System .out .println (war .toString (true ));
44+ return war ;
45+ }
46+
47+ @ Test
48+ public void testBatchCSVDatabase () throws Exception {
49+ JobOperator jobOperator = BatchRuntime .getJobOperator ();
50+ Long executionId = jobOperator .start ("myJob" , new Properties ());
51+ JobExecution jobExecution = jobOperator .getJobExecution (executionId );
52+
53+ BatchTestHelper .keepTestAlive (jobExecution );
54+
55+ List <StepExecution > stepExecutions = jobOperator .getStepExecutions (executionId );
56+ for (StepExecution stepExecution : stepExecutions ) {
57+ if (stepExecution .getStepName ().equals ("myStep" )) {
58+ Map <Metric .MetricType , Long > metricsMap = BatchTestHelper .getMetricsMap (stepExecution .getMetrics ());
59+ System .out .println (metricsMap );
60+
61+ assertEquals (7L , (long ) metricsMap .get (Metric .MetricType .READ_COUNT ));
62+ assertEquals (7L , (long ) metricsMap .get (Metric .MetricType .WRITE_COUNT ));
63+ assertEquals (3L , (long ) metricsMap .get (Metric .MetricType .COMMIT_COUNT ));
64+ }
65+ }
66+
67+ Query query = entityManager .createQuery ("SELECT p FROM Person p" );
68+ @ SuppressWarnings ("unchecked" )
69+ List <Person > persons = query .getResultList ();
70+
71+ assertEquals (7L , persons .size ());
72+ assertEquals (jobExecution .getBatchStatus (), BatchStatus .COMPLETED );
73+ }
74+ }
0 commit comments