Advertisement
desislava_topuzakova

Untitled

Nov 28th, 2022
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.12 KB | None | 0 0
  1. import org.junit.Assert;
  2. import org.junit.Before;
  3. import org.junit.Test;
  4.  
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. public class ChainblockImplTest {
  9. private Chainblock database; //база от данни с транзакции
  10.  
  11. @Before
  12. public void setUp() {
  13. this.database = new ChainblockImpl(); //празна база от данни с транзакции
  14. }
  15.  
  16. //add
  17. //1. добавяме транзакция, която я няма
  18. @Test
  19. public void testAddTransaction () {
  20. Assert.assertEquals(0, this.database.getCount());
  21. //0 транзакции
  22. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  23. //добавяме транзакция
  24. this.database.add(transaction1);
  25. //1 транзакция
  26. Assert.assertEquals(1, this.database.getCount());
  27. Assert.assertTrue(this.database.contains(transaction1)); //проверка за наличие по transaction
  28. }
  29.  
  30. //2. добавяме транзакция, която я има
  31. @Test
  32. public void testAddExistingTransaction () {
  33. Assert.assertEquals(0, this.database.getCount());
  34. //0 транзакции
  35. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  36. this.database.add(transaction1);
  37. //1 транзакция
  38. Assert.assertEquals(1, this.database.getCount());
  39. Assert.assertTrue(this.database.contains(transaction1.getId())); //проверка за наличие по id
  40. //добавяме същата транзакция / добавяме вече съществуваща транзакция
  41. this.database.add(transaction1);
  42. //1 транзакция
  43. Assert.assertEquals(1, this.database.getCount());
  44. }
  45.  
  46. /*@Test
  47. public void testAdd () {
  48. Assert.assertEquals("Initial database is not empty.", 0, this.database.getCount());
  49. //0 транзакции
  50. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  51. //добавяме транзакция
  52. this.database.add(transaction1);
  53. //1 транзакция
  54. Assert.assertEquals("Error in add transaction.",1, this.database.getCount());
  55. Assert.assertTrue("Transaction does not exist in database.", this.database.contains(transaction1));
  56. //добавяме същата транзакция / добавяме вече съществуваща транзакция
  57. this.database.add(transaction1);
  58. //1 транзакция
  59. Assert.assertEquals("Duplicate transactions.",1, this.database.getCount());
  60. }*/
  61.  
  62. //changeTransactionStatus
  63. //1. намираме транзакция с даденото id -> сменям статуса и със дадения
  64. @Test
  65. public void testChangeTransactionStatus () {
  66. Assert.assertEquals(0, this.database.getCount()); //{}
  67. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90); //първоначално добавената
  68. this.database.add(transaction1); // {tr1}
  69. Assert.assertEquals(1, this.database.getCount());
  70. this.database.changeTransactionStatus(1, TransactionStatus.ABORTED);
  71. Assert.assertEquals(TransactionStatus.ABORTED, this.database.getById(1).getStatus());
  72. }
  73.  
  74. //2. не намираме транзакция с даденото id -> очакваме IllegalArgumentException
  75. @Test(expected = IllegalArgumentException.class)
  76. public void testChangeTransactionStatusInvalidId() {
  77. Assert.assertEquals(0, this.database.getCount()); //{}
  78. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90); //първоначално добавената
  79. this.database.add(transaction1); // {tr1}
  80. this.database.changeTransactionStatus(2, TransactionStatus.ABORTED);
  81. }
  82.  
  83. //removeTransactionById
  84. //1. намираме транзакция с даденото id -> премахваме транзакцията
  85. @Test
  86. public void testRemoveTransactionById () {
  87. //0 transactions
  88. Assert.assertEquals(0, this.database.getCount()); //{}
  89. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  90. Transaction transaction2 = new TransactionImpl(2, TransactionStatus.ABORTED, "Ivan", "Dimitar", 200.50);
  91. this.database.add(transaction1);
  92. this.database.add(transaction2);
  93. //2 transactions
  94. Assert.assertEquals(2, this.database.getCount()); //{transaction1, transaction2}
  95. //премахнва транзакция с id = 1
  96. this.database.removeTransactionById(1);
  97. //1 transaction
  98. Assert.assertEquals(1, this.database.getCount()); //{transaction2}
  99. Assert.assertFalse(this.database.contains(1));
  100. }
  101.  
  102.  
  103. //2. не намираме транзакция с даденото id -> очакваме IllegalArgumentException
  104. @Test(expected = IllegalArgumentException.class)
  105. public void testRemoveInvalidTransactionById() {
  106. //0 transactions
  107. Assert.assertEquals(0, this.database.getCount()); //{}
  108. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  109. this.database.add(transaction1);
  110. //1 transaction -> {id: 1, TransactionStatus.SUCCESSFUL, from: "Desi", to: "Stoyan", amount: 150.90}
  111. this.database.removeTransactionById(5);
  112. }
  113.  
  114. //getById
  115. //1. ако съществува транзакция с даденото id -> връщаме транзакцията с това id
  116. @Test
  117. public void testGetTransactionById() {
  118. //0 transactions
  119. Assert.assertEquals(0, this.database.getCount()); //{}
  120. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  121. this.database.add(transaction1); //{tr1}
  122. Transaction returnedTransaction = this.database.getById(1);
  123. //начин 1:
  124. // проверка дали върнатаа транзакция е същата като добавената транзакция с id = 1
  125. Assert.assertEquals(transaction1, returnedTransaction);
  126. //начин 2: стойността на всяко поле
  127. Assert.assertEquals("Id is not correct.", transaction1.getId(), returnedTransaction.getId());
  128. Assert.assertEquals("Status is not correct.", transaction1.getStatus(), returnedTransaction.getStatus());
  129. }
  130.  
  131. //2. ако не съществува транзакция с даденото id -> очакваме IllegalArgumentException
  132. @Test(expected = IllegalArgumentException.class)
  133. public void testGetTransactionByInvalidId() {
  134. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90);
  135. this.database.add(transaction1); //1 транзакция -> {1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 150.90}
  136. this.database.getById(5);
  137. }
  138.  
  139. //getByTransactionStatus
  140. //1. валиден статус -> всички транзакции с този статус, подредени по descending (от най-голямото към най-малкото) по amount
  141. @Test
  142. public void testGetTransactionsByStatus() {
  143. //0 transactions
  144. Assert.assertEquals(0, this.database.getCount()); //{}
  145. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 50.00);
  146. Transaction transaction2 = new TransactionImpl(2, TransactionStatus.SUCCESSFUL, "Desi", "Ivan", 120.00);
  147. Transaction transaction3 = new TransactionImpl(3, TransactionStatus.ABORTED, "Desi", "Peter", 90.00);
  148. this.database.add(transaction1);
  149. this.database.add(transaction2);
  150. this.database.add(transaction3);
  151. Assert.assertEquals(3, this.database.getCount()); //{transaction1, transaction2, transaction3}
  152.  
  153. Iterable<Transaction> result = this.database.getByTransactionStatus(TransactionStatus.SUCCESSFUL);
  154. List<Transaction> returnedTransactions = new ArrayList<>(); //всички транзакции със статус SUCCESSFUL -> {transaction2, transaction1}
  155. result.forEach(returnedTransactions::add);
  156.  
  157. //верен ли е броят на върнатите транзакции?
  158. Assert.assertEquals(2, returnedTransactions.size());
  159. //всички върнати транзакции са със статус SUCCESSFUL
  160. returnedTransactions.forEach(tr -> Assert.assertEquals(TransactionStatus.SUCCESSFUL, tr.getStatus()));
  161. //върнатите транзакции са правилно подредени -> {}
  162. Assert.assertEquals(returnedTransactions.get(0), transaction2);
  163. Assert.assertEquals(returnedTransactions.get(1), transaction1);
  164.  
  165. }
  166. //2. липсваща транзакция с дадения статус -> очакваме IllegalArgumentException
  167. @Test(expected = IllegalArgumentException.class)
  168. public void testGetByMissingTransactionStatus() {
  169. //0 transactions
  170. Assert.assertEquals(0, this.database.getCount()); //{}
  171. Transaction transaction1 = new TransactionImpl(1, TransactionStatus.SUCCESSFUL, "Desi", "Stoyan", 50.00);
  172. Transaction transaction2 = new TransactionImpl(2, TransactionStatus.SUCCESSFUL, "Desi", "Ivan", 120.00);
  173. Transaction transaction3 = new TransactionImpl(3, TransactionStatus.ABORTED, "Desi", "Peter", 90.00);
  174. this.database.add(transaction1);
  175. this.database.add(transaction2);
  176. this.database.add(transaction3);
  177. Assert.assertEquals(3, this.database.getCount()); //{transaction1, transaction2, transaction3}
  178.  
  179. Iterable<Transaction> result = this.database.getByTransactionStatus(TransactionStatus.FAILED);
  180. }
  181. }
  182.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement