From c92e7fb194fd3bbd8a15a1c6d1fdc944fe86ee01 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Sun, 17 Jul 2022 17:30:50 +0900 Subject: [PATCH] #13 spring transaction - apply test --- .../src/main/resources/application.properties | 2 +- .../springtransaction/apply/TxBasicTest.java | 57 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 spring-transaction/src/test/java/com/example/springtransaction/apply/TxBasicTest.java diff --git a/spring-transaction/src/main/resources/application.properties b/spring-transaction/src/main/resources/application.properties index 8b137891..84f248b5 100644 --- a/spring-transaction/src/main/resources/application.properties +++ b/spring-transaction/src/main/resources/application.properties @@ -1 +1 @@ - +logging.level.org.springframwork.transaction.interceptor=TRACE \ No newline at end of file diff --git a/spring-transaction/src/test/java/com/example/springtransaction/apply/TxBasicTest.java b/spring-transaction/src/test/java/com/example/springtransaction/apply/TxBasicTest.java new file mode 100644 index 00000000..bba80c67 --- /dev/null +++ b/spring-transaction/src/test/java/com/example/springtransaction/apply/TxBasicTest.java @@ -0,0 +1,57 @@ +package com.example.springtransaction.apply; + +import lombok.extern.slf4j.Slf4j; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.aop.support.AopUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.TransactionSynchronizationManager; + +@Slf4j +@SpringBootTest +public class TxBasicTest { + + @Autowired + BasicService basicService; + + @Test + void proxyCheck() { + log.info("aop class={}", basicService.getClass()); + Assertions.assertThat(AopUtils.isAopProxy(basicService)).isTrue(); + } + + @Test + void txTest() { + basicService.tx(); + basicService.nonTx(); + } + + @TestConfiguration + static class TxApplyBasicConfig { + @Bean + BasicService basicService() { + return new BasicService(); + } + } + + @Slf4j + static class BasicService { + + @Transactional + public void tx() { + log.info("call tx"); + boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); + log.info("tx active={}", txActive); + } + + public void nonTx() { + log.info("call nonTx"); + boolean txActive = TransactionSynchronizationManager.isActualTransactionActive(); + log.info("tx active={}", txActive); + } + } +}