Advertisement
Guest User

wallet

a guest
Feb 17th, 2020
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.00 KB | None | 0 0
  1. package com.team16.virtualwallet.services;
  2.  
  3. import com.team16.virtualwallet.exceptions.DuplicateEntityException;
  4. import com.team16.virtualwallet.models.Currency;
  5. import com.team16.virtualwallet.models.DTOs.CardDTO;
  6. import com.team16.virtualwallet.models.DTOs.WalletDto;
  7. import com.team16.virtualwallet.models.User;
  8. import com.team16.virtualwallet.models.Wallet;
  9. import com.team16.virtualwallet.models.mappers.WalletMapper;
  10. import com.team16.virtualwallet.repositories.CurrencyRepository;
  11. import com.team16.virtualwallet.repositories.UserRepository;
  12. import com.team16.virtualwallet.repositories.WalletRepository;
  13. import com.team16.virtualwallet.services.contracts.UserService;
  14. import com.team16.virtualwallet.services.contracts.WalletService;
  15. import org.junit.Test;
  16. import org.junit.runner.RunWith;
  17. import org.mockito.InjectMocks;
  18. import org.mockito.Mock;
  19. import org.mockito.Mockito;
  20. import org.mockito.junit.MockitoJUnitRunner;
  21. import org.springframework.data.domain.Page;
  22. import org.springframework.data.domain.PageRequest;
  23. import org.springframework.data.domain.Pageable;
  24.  
  25. import javax.persistence.EntityNotFoundException;
  26. import java.math.BigDecimal;
  27. import java.util.ArrayList;
  28. import java.util.HashSet;
  29. import java.util.List;
  30. import java.util.Optional;
  31.  
  32. import static com.team16.virtualwallet.Factory.*;
  33. import static org.mockito.ArgumentMatchers.*;
  34. import static org.mockito.Mockito.*;
  35.  
  36. @RunWith(MockitoJUnitRunner.class)
  37. public class WalletServiceImplTests {
  38.  
  39. @Mock
  40. WalletMapper walletMapper;
  41.  
  42. @Mock
  43. WalletRepository mockWalletRepository;
  44.  
  45. @Mock
  46. CurrencyRepository mockCurrencyRepository;
  47.  
  48. @Mock
  49. UserRepository mockUserRepo;
  50.  
  51.  
  52.  
  53. @InjectMocks
  54. WalletServiceIml mockWalletsService;
  55.  
  56. @Test
  57. public void create_Should_ReturnWallet_WhenSuccessful() {
  58. //Arrange
  59. Wallet wallet = createWallet();
  60. WalletDto receivedWalletDTO = createWalletDto();
  61. User user = createUser();
  62.  
  63.  
  64. when(mockUserRepo.findByUsernameAndEnabledIsTrue(anyString())).thenReturn(java.util.Optional.of(user));
  65. when(mockWalletRepository.existsByNameAndCreator(anyString(), any(User.class))).thenReturn(false);
  66. when(walletMapper.mapToWallet(receivedWalletDTO)).thenReturn(wallet);
  67. //userRepository.findByUsernameAndEnabledIsTrue(creator)
  68.  
  69. //Act
  70. mockWalletsService.create(receivedWalletDTO);
  71. //Assert
  72. Mockito.verify(mockWalletRepository, Mockito.times(1)).save(wallet);
  73. }
  74.  
  75.  
  76. @Test(expected = DuplicateEntityException.class)
  77. public void create_Should_ThrowException_WhenEntityIsAlreadyCreated() {
  78. //Arrange
  79. Wallet wallet = createWallet();
  80. WalletDto receivedWalletDTO = createWalletDto();
  81. User user = createUser();
  82.  
  83.  
  84. when(mockUserRepo.findByUsernameAndEnabledIsTrue(anyString())).thenReturn(java.util.Optional.of(user));
  85. when(mockWalletRepository.existsByNameAndCreator(anyString(), any(User.class))).thenReturn(true);
  86.  
  87. //userRepository.findByUsernameAndEnabledIsTrue(creator)
  88.  
  89. //Act
  90. mockWalletsService.create(receivedWalletDTO);
  91. //Assert
  92. Mockito.verify(mockWalletRepository, Mockito.times(1)).save(wallet);
  93. }
  94.  
  95. @Test
  96. public void update_Should_CallRepository() {
  97. //Arrange
  98. Wallet wallet = createWallet();
  99. wallet.setCreator(createUser());
  100.  
  101. when(mockWalletRepository.findById(1)).thenReturn(wallet);
  102. //Act
  103. mockWalletsService.update(1, wallet, wallet.getCreator().getUsername());
  104. //Arrange
  105. Mockito.verify(mockWalletRepository, Mockito.times(1)).save(wallet);
  106. }
  107.  
  108. @Test
  109. public void addMoneyToWalletFromCard_Should_CallRepository() {
  110. //Arrange
  111. Wallet wallet = createWallet();
  112.  
  113. when(mockWalletRepository.findById(anyInt())).thenReturn(wallet);
  114. //Act
  115. mockWalletsService.addMoneyToWalletFromCard(new BigDecimal("40"), anyInt());
  116. //Arrange
  117. Mockito.verify(mockWalletRepository, Mockito.times(1)).save(wallet);
  118. }
  119.  
  120. @Test
  121. public void getUserCard_Should_CallRepository() {
  122. //Arrange
  123. Wallet wallet = createWallet();
  124.  
  125. when(mockWalletRepository.findById(anyInt())).thenReturn(wallet);
  126. //Act
  127. mockWalletsService.addMoneyToWalletFromCard(new BigDecimal("40"), anyInt());
  128. //Arrange
  129. Mockito.verify(mockWalletRepository, Mockito.times(1)).save(wallet);
  130. }
  131.  
  132. @Test
  133. public void findById_Should_CallRepository() {
  134. //Arrange
  135. Wallet wallet = createWallet();
  136.  
  137. when(mockWalletRepository.findById(anyInt())).thenReturn(wallet);
  138. //Act
  139. mockWalletsService.findById(anyInt());
  140. //Arrange
  141. Mockito.verify(mockWalletRepository, Mockito.times(1)).findById(anyInt());
  142. }
  143.  
  144. @Test
  145. public void getAll_Should_CallRepository() {
  146.  
  147. mockWalletsService.getUsersWallets("testUsername", "testWalletName",PageRequest.of(1, 8));
  148.  
  149. verify(mockWalletRepository,times(1)).getAllUserWallets("testUsername", "testWalletName",PageRequest.of(1, 8));
  150. }
  151.  
  152. @Test
  153. public void findByCurrencies_Should_CallRepository() {
  154. Currency currency = createCurrency();
  155. List<Currency> currencies = new ArrayList<>();
  156. currencies.add(currency);
  157.  
  158. when(mockCurrencyRepository.getAllBy()).thenReturn(currencies);
  159.  
  160. mockWalletsService.findPossibleWalletCurr();
  161.  
  162. Mockito.verify(mockCurrencyRepository, Mockito.times(1)).getAllBy();
  163. }
  164.  
  165. @Test
  166. public void create_Should_CallRepository() {
  167. WalletDto walletDto = createWalletDto();
  168. User user = createUser();
  169. walletDto.setCreator(user.getUsername());
  170.  
  171.  
  172. when(mockUserRepo.findByUsernameAndEnabledIsTrue(anyString()))
  173. .thenReturn(Optional.of(user));
  174.  
  175. mockWalletsService.create(walletDto);
  176.  
  177. Mockito.verify(mockUserRepo, Mockito.times(1)).save(user);
  178. }
  179.  
  180.  
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement