MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NotPersistentTest.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 com.mysql.clusterj.ClusterJUserException;
22 import com.mysql.clusterj.Query;
23 import com.mysql.clusterj.query.QueryDomainType;
24 import com.mysql.clusterj.query.QueryBuilder;
25 
26 import java.util.ArrayList;
27 import java.util.List;
28 
29 import testsuite.clusterj.model.NotPersistentTypes;
30 
32 
33  private static final int NUMBER_TO_INSERT = 5;
34 
35  protected List<NotPersistentTypes> notPersistentTypes =
36  new ArrayList<NotPersistentTypes>();
37 
38  @Override
39  public void localSetUp() {
40  createSessionFactory();
41  session = sessionFactory.getSession();
42  createNotPersistentTypesInstances(NUMBER_TO_INSERT);
43  int count = session.deletePersistentAll(NotPersistentTypes.class);
44  addTearDownClasses(NotPersistentTypes.class);
45 // System.out.println("Deleted " + count + " instances.");
46  }
47 
48  public void test() {
49  defaultValues();
50  setValues();
51  insert();
52  find();
53  query();
54  badQuery();
55  delete();
56  failOnError();
57  }
58 
59  protected void defaultValues() {
60  NotPersistentTypes npt = session.newInstance(NotPersistentTypes.class);
61  errorIfNotEqual("NotPersistentInteger default value.",
62  null, npt.getNotPersistentInteger());
63  errorIfNotEqual("NotPersistentChildren default value.",
64  null, npt.getNotPersistentChildren());
65  errorIfNotEqual("NotPersistentInt default value.",
66  0, npt.getNotPersistentInt());
67  errorIfNotEqual("Id default value.",
68  0, npt.getId());
69  errorIfNotEqual("Name default value.",
70  null, npt.getName());
71  errorIfNotEqual("Magic default value.",
72  0, npt.getMagic());
73  errorIfNotEqual("Age default value.",
74  null, npt.getAge());
75  }
76 
77  protected void setValues() {
78  NotPersistentTypes npt = notPersistentTypes.get(0);
79  List<NotPersistentTypes> children = new ArrayList<NotPersistentTypes>();
80  children.add(notPersistentTypes.get(1));
81  children.add(notPersistentTypes.get(2));
82  npt.setNotPersistentChildren(children);
83  errorIfNotEqual("NotPersistentInteger default value.",
84  children, npt.getNotPersistentChildren());
85  int intValue = 666;
86  npt.setNotPersistentInt(intValue);
87  errorIfNotEqual("NotPersistentChildren default value.",
88  intValue, npt.getNotPersistentInt());
89  Integer integerValue = Integer.valueOf(intValue);
90  npt.setNotPersistentInteger(integerValue);
91  errorIfNotEqual("NotPersistentInt default value.",
92  integerValue, npt.getNotPersistentInteger());
93  }
94 
95  protected void insert() {
96  tx = session.currentTransaction();
97  tx.begin();
98  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
99  session.makePersistent(notPersistentTypes.get(i));
100  }
101 
102  tx.commit();
103  }
104 
105  protected void find() {
106  tx = session.currentTransaction();
107  tx.begin();
108  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
109  NotPersistentTypes instance = session.find(NotPersistentTypes.class, i);
110  errorIfNotEqual("Wrong instance", i, instance.getId());
111  }
112  tx.commit();
113  }
114 
115  protected void query() {
116  tx = session.currentTransaction();
117  tx.begin();
118  QueryBuilder builder = session.getQueryBuilder();
119  QueryDomainType dobj = builder.createQueryDefinition(NotPersistentTypes.class);
120  dobj.where(dobj.get("id").equal(dobj.param("id")));
121  Query query = session.createQuery(dobj);
122  query.setParameter("id", 0);
123  List<NotPersistentTypes> result = query.getResultList();
124  int resultSize = result.size();
125  errorIfNotEqual("Wrong query result size", 1, resultSize);
126  NotPersistentTypes npt = result.get(0);
127  int resultId = npt.getId();
128  tx.commit();
129  errorIfNotEqual("Wrong query result instance id 0", 0, resultId);
130  }
131 
132  protected void badQuery() {
133  try {
134  QueryBuilder builder = session.getQueryBuilder();
135  QueryDomainType dobj = builder.createQueryDefinition(NotPersistentTypes.class);
136  dobj.where(dobj.get("notPersistentChildren").equal(dobj.param("id")));
137  error("Failed to catch user exception for not-persistent query field");
138  } catch (ClusterJUserException ex) {
139  // good catch
140  }
141  }
142 
143  protected void delete() {
144  tx = session.currentTransaction();
145  tx.begin();
146  for (int i = 0; i < NUMBER_TO_INSERT; ++i) {
147  session.deletePersistent(notPersistentTypes.get(i));
148  }
149  tx.commit();
150  }
151 
152  protected void createNotPersistentTypesInstances(int count) {
153  notPersistentTypes = new ArrayList<NotPersistentTypes>(count);
154  for (int i = 0; i < count; ++i) {
155  NotPersistentTypes npt = session.newInstance(NotPersistentTypes.class);
156  npt.setId(i);
157  npt.setName("Employee number " + i);
158  npt.setAge(i);
159  npt.setMagic(i);
160  notPersistentTypes.add(npt);
161  }
162  }
163 
164 }