From 8a8ed24cfaa41ef74c96ed53bdbc4deb96d5f95c Mon Sep 17 00:00:00 2001 From: Terekhin Alexander Date: Wed, 19 Aug 2020 12:53:50 +0300 Subject: [PATCH] TransactionsTest (pass) --- .../java/me/bearns/fias/TransactionsTest.java | 43 +++++++++++-------- .../fias/helper/TransactionalSaveHelper.java | 33 ++++++++++++++ 2 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 src/test/java/me/bearns/fias/helper/TransactionalSaveHelper.java diff --git a/src/test/java/me/bearns/fias/TransactionsTest.java b/src/test/java/me/bearns/fias/TransactionsTest.java index a9f5f47..6a75891 100644 --- a/src/test/java/me/bearns/fias/TransactionsTest.java +++ b/src/test/java/me/bearns/fias/TransactionsTest.java @@ -1,45 +1,57 @@ package me.bearns.fias; import me.bearns.fias.domain.FiasVersion; +import me.bearns.fias.helper.TransactionalSaveHelper; import me.bearns.fias.repository.FiasVersionRepository; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import static me.bearns.fias.helper.TransactionalSaveHelper.FIRST; +import static me.bearns.fias.helper.TransactionalSaveHelper.NEXT; import static org.springframework.transaction.annotation.Isolation.READ_COMMITTED; @RunWith(SpringRunner.class) @SpringBootTest +@Import(TransactionalSaveHelper.class) public class TransactionsTest { - private static final long FIRST = 1L; - private static final long NEXT = 2L; - @Autowired private FiasVersionRepository repository; + @Autowired + private TransactionalSaveHelper helper; + @Before public void before(){ - final FiasVersion version = new FiasVersion(FIRST, null, null, null); - repository.save(version); - - try { - addNext(); - } catch (Exception e) { - //just as planed - e.printStackTrace(); - } + helper.setRepository(repository); } @Test public void transactionTest(){ + helper.addFirst(); + + try { + helper.addNext(); + + assert false; + + } catch (Exception e) { + //e.printStackTrace(); + //just as plained + + assert true; + } + final List versions = repository.findAll(); versions.stream().map(FiasVersion::getVersionId).forEach(System.out::println); @@ -50,10 +62,5 @@ public class TransactionsTest { } - @Transactional - public void addNext() throws Exception { - final FiasVersion nextVersion = new FiasVersion(NEXT, null, null, null); - repository.save(nextVersion); - throw new Exception("test"); - } + } diff --git a/src/test/java/me/bearns/fias/helper/TransactionalSaveHelper.java b/src/test/java/me/bearns/fias/helper/TransactionalSaveHelper.java new file mode 100644 index 0000000..808f959 --- /dev/null +++ b/src/test/java/me/bearns/fias/helper/TransactionalSaveHelper.java @@ -0,0 +1,33 @@ +package me.bearns.fias.helper; + +import me.bearns.fias.domain.FiasVersion; +import me.bearns.fias.exceptions.CommonException; +import me.bearns.fias.exceptions.UnmarshallingException; +import me.bearns.fias.repository.FiasVersionRepository; +import org.springframework.boot.test.context.TestComponent; +import org.springframework.transaction.annotation.Transactional; + +@TestComponent +public class TransactionalSaveHelper { + + private FiasVersionRepository repository; + + public static final long FIRST = 1L; + public static final long NEXT = 2L; + + public void setRepository(FiasVersionRepository repository) { + this.repository = repository; + } + + @Transactional(rollbackFor = Exception.class) + public void addNext() throws CommonException { + final FiasVersion nextVersion = new FiasVersion(NEXT, null, null, null); + repository.save(nextVersion); + throw new UnmarshallingException("test"); + } + + public void addFirst() { + final FiasVersion version = new FiasVersion(FIRST, null, null, null); + repository.save(version); + } +}