1 package org.synchronoss.cpo.jdbc.adapter;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import static org.testng.Assert.*;
26
27 import java.util.ArrayList;
28 import org.synchronoss.cpo.core.CpoAdapterFactoryManager;
29 import org.synchronoss.cpo.core.CpoException;
30 import org.synchronoss.cpo.core.CpoTrxAdapter;
31 import org.synchronoss.cpo.core.helper.ExceptionHelper;
32 import org.synchronoss.cpo.jdbc.ValueObject;
33 import org.testng.annotations.AfterClass;
34 import org.testng.annotations.BeforeClass;
35 import org.testng.annotations.Test;
36
37
38
39
40
41
42 public class RollbackTrxTest {
43
44
45 private static final int IDB = 2100000;
46
47 private CpoTrxAdapter trxAdapter = null;
48
49
50 public RollbackTrxTest() {}
51
52
53
54
55
56 @BeforeClass
57 public void setUp() {
58 String method = "setUp:";
59
60 try {
61 trxAdapter = CpoAdapterFactoryManager.getCpoTrxAdapter(JdbcStatics.ADAPTER_CONTEXT_JDBC);
62 assertNotNull(trxAdapter, method + "trxAdapter is null");
63 } catch (Exception e) {
64 fail(method + e.getMessage());
65 }
66 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 1);
67 vo.setAttrVarChar("Test");
68 try {
69 trxAdapter.insertBean(vo);
70 trxAdapter.commit();
71 } catch (Exception e) {
72 try {
73 trxAdapter.rollback();
74 } catch (Exception e1) {
75 }
76 fail(method + e.getMessage());
77 }
78 }
79
80
81 @AfterClass
82 public void tearDown() {
83 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 1);
84 try {
85 trxAdapter.deleteBean(vo);
86 trxAdapter.commit();
87 } catch (Exception e) {
88 try {
89 trxAdapter.rollback();
90 } catch (Exception e1) {
91 }
92 } finally {
93 try {
94 trxAdapter.close();
95 } catch (Exception e1) {
96 }
97 trxAdapter = null;
98 }
99 }
100
101
102 @Test
103 public void testTrxRollbackProcessUpdateCollection() {
104 String method = "testTrxRollbackProcessUpdateCollection:";
105 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 2);
106 ValueObject vo2 = ValueObjectFactory.createValueObject(IDB + 1);
107 ArrayList<ValueObject> al = new ArrayList<>();
108
109 al.add(vo);
110 al.add(vo2);
111
112 try {
113 trxAdapter.insertBeans(ValueObject.FG_CREATE_TESTROLLBACK, al);
114 trxAdapter.commit();
115 fail(method + "Insert should have thrown an exception");
116 } catch (Exception e) {
117 try {
118 trxAdapter.rollback();
119 } catch (CpoException ce) {
120 fail(method + "Rollback failed:" + ExceptionHelper.getLocalizedMessage(ce));
121 }
122 try {
123 ValueObject rvo = trxAdapter.retrieveBean(vo);
124 assertNull(rvo, method + "Value Object did not rollback");
125 } catch (Exception e2) {
126 fail(method + e.getMessage());
127 }
128 }
129 }
130
131
132 @Test
133 public void testTrxSingleRollback() {
134 String method = "testTrxSingleRollback:";
135 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 2);
136 try {
137 trxAdapter.insertBean("TestSingleRollbackTrx", vo);
138 trxAdapter.commit();
139 fail(method + "Insert should have thrown an exception");
140 } catch (Exception e) {
141 try {
142 trxAdapter.rollback();
143 } catch (CpoException ce) {
144 fail(method + "Rollback failed:" + ExceptionHelper.getLocalizedMessage(ce));
145 }
146 try {
147 ValueObject rvo = trxAdapter.retrieveBean(vo);
148 assertNull(rvo, method + "Value Object did not rollback");
149 } catch (Exception e2) {
150 fail(method + e.getMessage());
151 }
152 }
153 }
154 }