Skip to content

Commit 3fcca96

Browse files
Malte Jörgensaburmeis
authored andcommitted
#80 started tests
1 parent 7437269 commit 3fcca96

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.arangodb.springframework;
2+
3+
import com.arangodb.springframework.repository.query.QueryTransactionBridge;
4+
import com.arangodb.springframework.transaction.ArangoTransactionManager;
5+
import org.springframework.context.annotation.Bean;
6+
import org.springframework.context.annotation.Import;
7+
import org.springframework.test.context.TestExecutionListeners;
8+
import org.springframework.test.context.transaction.TransactionalTestExecutionListener;
9+
import org.springframework.transaction.annotation.EnableTransactionManagement;
10+
11+
@EnableTransactionManagement
12+
@TestExecutionListeners(TransactionalTestExecutionListener.class)
13+
@Import(ArangoTransactionManager.class)
14+
public class ArangoTransactionalTestConfiguration extends ArangoTestConfiguration {
15+
16+
@Bean
17+
public QueryTransactionBridge queryTransactionBridge() {
18+
return new QueryTransactionBridge();
19+
}
20+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.arangodb.springframework.transaction;
2+
3+
import com.arangodb.springframework.AbstractArangoTest;
4+
import com.arangodb.springframework.ArangoTransactionalTestConfiguration;
5+
import com.arangodb.springframework.repository.HumanBeingRepository;
6+
import com.arangodb.springframework.testdata.HumanBeing;
7+
import org.junit.Test;
8+
import org.springframework.beans.factory.annotation.Autowired;
9+
import org.springframework.test.context.ContextConfiguration;
10+
import org.springframework.test.context.transaction.TestTransaction;
11+
import org.springframework.transaction.annotation.Transactional;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
15+
16+
@ContextConfiguration(classes = { ArangoTransactionalTestConfiguration.class })
17+
public class ArangoTransactionManagerRepositoryTest extends AbstractArangoTest {
18+
19+
private final HumanBeing anakin = new HumanBeing("Anakin", "Skywalker", false);
20+
21+
@Autowired
22+
private HumanBeingRepository humanBeingRepository;
23+
24+
@Test
25+
public void shouldWorkWithoutTransaction() {
26+
assertDoesNotThrow(() -> humanBeingRepository.save(anakin));
27+
}
28+
29+
@Test
30+
@Transactional
31+
public void shouldWorkWithinTransaction() {
32+
TestTransaction.flagForCommit();
33+
assertDoesNotThrow(() -> humanBeingRepository.save(anakin));
34+
}
35+
36+
@Test
37+
@Transactional
38+
public void shouldRollbackWithinTransaction() {
39+
humanBeingRepository.save(anakin);
40+
TestTransaction.flagForRollback();
41+
TestTransaction.end();
42+
43+
assertThat(humanBeingRepository.findByNameAndSurname(anakin.getName(), anakin.getSurname())).isNotPresent();
44+
}
45+
}

0 commit comments

Comments
 (0)