From a8b29ac9360526118bb83744513fa3ace0836133 Mon Sep 17 00:00:00 2001 From: Terekhin Alexander Date: Tue, 18 Aug 2020 19:08:15 +0300 Subject: [PATCH] TransactionsTest (failed) --- .../me/bearns/fias/service/FiasUpdater.java | 2 + .../resources/db/changelog/001_AddrObj.yaml | 2 +- .../resources/db/changelog/002_House.yaml | 4 +- .../db/changelog/db.changelog-master.yaml | 10 +++- .../java/me/bearns/fias/TransactionsTest.java | 59 +++++++++++++++++++ 5 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 src/test/java/me/bearns/fias/TransactionsTest.java diff --git a/src/main/java/me/bearns/fias/service/FiasUpdater.java b/src/main/java/me/bearns/fias/service/FiasUpdater.java index 109c601..534a256 100644 --- a/src/main/java/me/bearns/fias/service/FiasUpdater.java +++ b/src/main/java/me/bearns/fias/service/FiasUpdater.java @@ -10,6 +10,7 @@ import me.bearns.fias.util.RegionFilter; import me.bearns.fias.util.UnmarshallerParameters; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.io.*; import java.util.*; @@ -84,6 +85,7 @@ public class FiasUpdater implements Updater { } //transaction from here + @Transactional private void processUpdates(List updates, boolean reloadFlag) throws CommonException { if(reloadFlag) { diff --git a/src/main/resources/db/changelog/001_AddrObj.yaml b/src/main/resources/db/changelog/001_AddrObj.yaml index 5745586..5208422 100644 --- a/src/main/resources/db/changelog/001_AddrObj.yaml +++ b/src/main/resources/db/changelog/001_AddrObj.yaml @@ -14,7 +14,7 @@ databaseChangeLog: nullable: false - column: name: aoguid - type: uuod + type: uuid - column: name: parentguid type: uuid diff --git a/src/main/resources/db/changelog/002_House.yaml b/src/main/resources/db/changelog/002_House.yaml index 07d4ff1..205f73a 100644 --- a/src/main/resources/db/changelog/002_House.yaml +++ b/src/main/resources/db/changelog/002_House.yaml @@ -14,10 +14,10 @@ databaseChangeLog: nullable: false - column: name: aoguid - type: uuod + type: uuid - column: name: houseguid - type: uuod + type: uuid - column: name: buildnum type: varchar(255) diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml index a9221d4..7ffc801 100644 --- a/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/src/main/resources/db/changelog/db.changelog-master.yaml @@ -1,6 +1,10 @@ databaseChangeLog: - include: - file: "000_initial_schema.yaml" - - file: "001_AddrObj.yaml" - - file: "002_House.yaml" - - relativeToChangelogFile: "true" \ No newline at end of file + - relativeToChangelogFile: "true" + - include: + - file: "001_AddrObj.yaml" + - relativeToChangelogFile: "true" + - include: + - file: "002_House.yaml" + - relativeToChangelogFile: "true" diff --git a/src/test/java/me/bearns/fias/TransactionsTest.java b/src/test/java/me/bearns/fias/TransactionsTest.java new file mode 100644 index 0000000..a9f5f47 --- /dev/null +++ b/src/test/java/me/bearns/fias/TransactionsTest.java @@ -0,0 +1,59 @@ +package me.bearns.fias; + +import me.bearns.fias.domain.FiasVersion; +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.test.context.junit4.SpringRunner; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +import static org.springframework.transaction.annotation.Isolation.READ_COMMITTED; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class TransactionsTest { + + private static final long FIRST = 1L; + private static final long NEXT = 2L; + + @Autowired + private FiasVersionRepository repository; + + @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(); + } + } + + @Test + public void transactionTest(){ + + final List versions = repository.findAll(); + + versions.stream().map(FiasVersion::getVersionId).forEach(System.out::println); + + assert versions.stream().mapToLong(FiasVersion::getVersionId).anyMatch(v -> FIRST == v); + + assert versions.stream().mapToLong(FiasVersion::getVersionId).noneMatch(v -> NEXT == v); + + } + + @Transactional + public void addNext() throws Exception { + final FiasVersion nextVersion = new FiasVersion(NEXT, null, null, null); + repository.save(nextVersion); + throw new Exception("test"); + } +}