MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SerialTransactionsTest.java
1 /*
2  Copyright 2010 Sun Microsystems, Inc.
3  All rights reserved. Use is subject to license terms.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
19 package testsuite.clusterj;
20 
21 import testsuite.clusterj.model.Employee;
22 
24 
25  private static final int NUMBER_TO_INSERT = 4;
26 
27  protected int numberOfEmployees() {
28  return NUMBER_TO_INSERT;
29  }
30 
31  @Override
32  public void localSetUp() {
33  createSessionFactory();
34  createSession();
35  createEmployeeInstances(NUMBER_TO_INSERT);
36  addTearDownClasses(Employee.class);
37  }
38 
39 
40  public void test() {
41  deleteAll();
42  createSession();
43  findAll();
44  createSession();
45  createAll();
46  createSession();
47  findAll();
48  createSession();
49  findAll();
50  createSession();
51  updateThenVerifyAll();
52  failOnError();
53  }
54 
55  protected void createAll() {
56  tx.begin();
57  session.makePersistentAll(employees);
58  tx.commit();
59  }
60 
62  public void findAll() {
63  tx.begin();
64  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
65  Employee e = session.find(Employee.class, i);
66  }
67  tx.commit();
68  }
69 
70  public void deleteAll() {
71  tx.begin();
72  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
73  Employee e = session.find(Employee.class, i);
74  session.deletePersistent(e);
75  }
76  tx.commit();
77  }
78 
79  public void updateThenVerifyAll() {
80  tx.begin();
81  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
82  Employee e = session.find(Employee.class, i);
83  // change age
84  e.setAge(NUMBER_TO_INSERT - i);
85  // send the change to the database
86  session.updatePersistent(e);
87  }
88  tx.commit();
89 
90  // now verify that the changes were committed
91  tx.begin();
92  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
93  Employee e = session.find(Employee.class, i);
94  // verify age
95  int expected = NUMBER_TO_INSERT - i;
96  int actual = e.getAge();
97  if (expected != actual) {
98  error("Failed update: for employee " + i
99  + " expected age " + expected
100  + " actual age " + actual);
101  }
102  }
103  tx.commit();
104  }
105 }