-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathBannerTest.java
More file actions
53 lines (42 loc) · 1.81 KB
/
Copy pathBannerTest.java
File metadata and controls
53 lines (42 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package ddingdong.ddingdongBE.domain.banner.entity;
import static org.assertj.core.api.Assertions.assertThat;
import ddingdong.ddingdongBE.common.fixture.BannerFixture;
import ddingdong.ddingdongBE.common.fixture.UserFixture;
import ddingdong.ddingdongBE.common.support.DataJpaTestSupport;
import ddingdong.ddingdongBE.domain.banner.repository.BannerRepository;
import ddingdong.ddingdongBE.domain.user.entity.User;
import ddingdong.ddingdongBE.domain.user.repository.UserRepository;
import jakarta.persistence.EntityManager;
import java.sql.Timestamp;
import java.util.Optional;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
class BannerTest extends DataJpaTestSupport {
@Autowired
private BannerRepository bannerRepository;
@Autowired
private EntityManager entityManager;
@Autowired
private UserRepository userRepository;
@DisplayName("Banner 삭제 시 soft delete 되어 조회에서 제외된다.")
@Test
void softDeleteBanner() {
// given
User savedUser = userRepository.save(UserFixture.createGeneralUser());
Banner banner = bannerRepository.save(BannerFixture.createBanner(savedUser));
// when
bannerRepository.delete(banner);
entityManager.flush();
entityManager.clear();
// then
Optional<Banner> found = bannerRepository.findById(banner.getId());
assertThat(found).isEmpty();
Timestamp deletedAt = (Timestamp) entityManager.createNativeQuery(
"select deleted_at from banner where id = :id")
.setParameter("id", banner.getId())
.getSingleResult();
assertThat(deletedAt).isNotNull();
assertThat(deletedAt.toLocalDateTime()).isNotNull();
}
}