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
+
60
+ assertEquals (7L , (long ) metricsMap .get (Metric .MetricType .READ_COUNT ));
61
+ assertEquals (7L , (long ) metricsMap .get (Metric .MetricType .WRITE_COUNT ));
62
+ assertEquals (3L , (long ) metricsMap .get (Metric .MetricType .COMMIT_COUNT ));
63
+ }
64
+ }
65
+
66
+ Query query = entityManager .createNamedQuery ("Person.findAll" );
67
+ @ SuppressWarnings ("unchecked" )
68
+ List <Person > persons = query .getResultList ();
69
+
70
+ assertEquals (7L , persons .size ());
71
+ assertEquals (jobExecution .getBatchStatus (), BatchStatus .COMPLETED );
72
+ }
73
+ }
0 commit comments