|
26 | 26 |
|
27 | 27 | import org.neo4j.driver.internal.spi.Collector;
|
28 | 28 | import org.neo4j.driver.internal.spi.Connection;
|
| 29 | +import org.neo4j.driver.v1.Transaction; |
29 | 30 | import org.neo4j.driver.v1.Value;
|
30 | 31 |
|
| 32 | +import static org.junit.Assert.assertFalse; |
| 33 | +import static org.junit.Assert.assertTrue; |
31 | 34 | import static org.mockito.Matchers.any;
|
32 | 35 | import static org.mockito.Mockito.inOrder;
|
33 | 36 | import static org.mockito.Mockito.mock;
|
@@ -143,4 +146,71 @@ public void shouldSyncWhenBookmarkGiven()
|
143 | 146 | inOrder.verify( connection ).pullAll( Collector.NO_OP );
|
144 | 147 | inOrder.verify( connection ).sync();
|
145 | 148 | }
|
| 149 | + |
| 150 | + @Test |
| 151 | + public void shouldBeOpenAfterConstruction() |
| 152 | + { |
| 153 | + Transaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 154 | + |
| 155 | + assertTrue( tx.isOpen() ); |
| 156 | + } |
| 157 | + |
| 158 | + @Test |
| 159 | + public void shouldBeOpenWhenMarkedForSuccess() |
| 160 | + { |
| 161 | + Transaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 162 | + |
| 163 | + tx.success(); |
| 164 | + |
| 165 | + assertTrue( tx.isOpen() ); |
| 166 | + } |
| 167 | + |
| 168 | + @Test |
| 169 | + public void shouldBeOpenWhenMarkedForFailure() |
| 170 | + { |
| 171 | + Transaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 172 | + |
| 173 | + tx.failure(); |
| 174 | + |
| 175 | + assertTrue( tx.isOpen() ); |
| 176 | + } |
| 177 | + |
| 178 | + @Test |
| 179 | + public void shouldBeOpenWhenMarkedToClose() |
| 180 | + { |
| 181 | + ExplicitTransaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 182 | + |
| 183 | + tx.markToClose(); |
| 184 | + |
| 185 | + assertTrue( tx.isOpen() ); |
| 186 | + } |
| 187 | + |
| 188 | + @Test |
| 189 | + public void shouldBeClosedAfterCommit() |
| 190 | + { |
| 191 | + Transaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 192 | + |
| 193 | + tx.success(); |
| 194 | + tx.close(); |
| 195 | + |
| 196 | + assertFalse( tx.isOpen() ); |
| 197 | + } |
| 198 | + |
| 199 | + @Test |
| 200 | + public void shouldBeClosedAfterRollback() |
| 201 | + { |
| 202 | + Transaction tx = new ExplicitTransaction( openConnectionMock(), mock( Runnable.class ) ); |
| 203 | + |
| 204 | + tx.failure(); |
| 205 | + tx.close(); |
| 206 | + |
| 207 | + assertFalse( tx.isOpen() ); |
| 208 | + } |
| 209 | + |
| 210 | + private static Connection openConnectionMock() |
| 211 | + { |
| 212 | + Connection connection = mock( Connection.class ); |
| 213 | + when( connection.isOpen() ).thenReturn( true ); |
| 214 | + return connection; |
| 215 | + } |
146 | 216 | }
|
0 commit comments