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.CpoAdapter;
29 import org.synchronoss.cpo.core.CpoAdapterFactoryManager;
30 import org.synchronoss.cpo.jdbc.ValueObject;
31 import org.testng.annotations.AfterClass;
32 import org.testng.annotations.BeforeClass;
33 import org.testng.annotations.Test;
34
35
36
37
38
39
40 public class RollbackTest {
41
42
43 private static final int IDB = 2000000;
44
45 private CpoAdapter cpoAdapter = null;
46
47 public RollbackTest() {}
48
49
50
51
52
53 @BeforeClass
54 public void setUp() {
55 String method = "setUp:";
56
57 try {
58 cpoAdapter = CpoAdapterFactoryManager.getCpoAdapter(JdbcStatics.ADAPTER_CONTEXT_JDBC);
59 assertNotNull(cpoAdapter, method + "cpoAdapter is null");
60 } catch (Exception e) {
61 fail(method + e.getMessage());
62 }
63 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 1);
64 try {
65 cpoAdapter.insertBean(vo);
66 } catch (Exception e) {
67 fail(method + e.getMessage());
68 }
69 }
70
71
72 @AfterClass
73 public void tearDown() {
74 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 1);
75 try {
76 cpoAdapter.deleteBean(vo);
77 } catch (Exception e) {
78 }
79 cpoAdapter = null;
80 }
81
82
83 @Test
84 public void testRollbackProcessUpdateCollection() {
85 String method = "testRollbackProcessUpdateCollection:";
86 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 2);
87 ValueObject vo2 = ValueObjectFactory.createValueObject(IDB + 1);
88 ArrayList<ValueObject> al = new ArrayList<>();
89
90 al.add(vo);
91 al.add(vo2);
92
93 try {
94 cpoAdapter.insertBeans(ValueObject.FG_CREATE_TESTROLLBACK, al);
95 fail(method + "Insert should have thrown an exception");
96 } catch (Exception e) {
97 try {
98 ValueObject rvo = cpoAdapter.retrieveBean(vo);
99 assertNull(rvo, method + "Value Object did not rollback");
100 } catch (Exception e2) {
101 fail(method + e.getMessage());
102 }
103 }
104 }
105
106
107 @Test
108 public void testSingleRollback() {
109 String method = "testSingleRollback:";
110 ValueObject vo = ValueObjectFactory.createValueObject(IDB + 2);
111 try {
112 cpoAdapter.insertBean(ValueObject.FG_CREATE_TESTSINGLEROLLBACK, vo);
113 fail(method + "Insert should have thrown an exception");
114 } catch (Exception e) {
115 try {
116 ValueObject rvo = cpoAdapter.retrieveBean(vo);
117 assertNull(rvo, method + "Value Object did not rollback");
118 } catch (Exception e2) {
119 fail(method + e.getMessage());
120 }
121 }
122 }
123 }