Ladies_Man

RequsetControllerMockTests unreachable branch

Feb 13th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.08 KB | None | 0 0
  1. @Transactional
  2.     public ImmutablePair<Request, String> update(Request changedRequest, Request newRequest) {
  3.         String reason = null;
  4.         RequestStatus changedRequestStatus = changedRequest.getRequestStatus();
  5.         RequestStatus newRequestStatus = newRequest.getRequestStatus();
  6.         // we can update request only if status changed
  7.         if (!changedRequestStatus.getId().equals(newRequestStatus.getId())) {
  8.             System.out.println("a");
  9.             if (changedRequest.getRequestStatus().getId().equals(RequestStatusEnum.TO_BE_CONSIDERED.getId()) &&
  10.                     (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId()) ||
  11.                             newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId()))) {
  12.                 System.out.println("b");
  13.                 if (changedRequest.getRequestType().getId().equals(RequestTypeEnum.DECOMMISSION_A_BOX.getId())) {
  14.                     //trying to decommission a box
  15.                     System.out.println("c");
  16.                     if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId()) ||
  17.                        (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId()))) {
  18.                         System.out.println("d");
  19.                         updateData(changedRequest, newRequest);
  20.                         ImmutablePair<Box, String> result = decommissionBoxConsideringItsStatus(newRequest);
  21.  
  22.                         System.out.println(result.getLeft().getStatus().getStatus());
  23.                         if (StringUtils.isNotBlank(result.getRight())) {
  24.                             //unreachable statement ?:
  25.                             // decomBoxConsItsStatus returns not blank reason if its arg is NOT of status
  26.                             //  APPROVED or DECLINED.
  27.                             // then newRequset status should be TO_BE_CONSIDERED.
  28.                             // 2nd nested if requires chnagedRequset status TO_BE_CONSIDERED
  29.                             // 1st if requiers newRequsetStatus and changedRequsetStatus to be different
  30.                             // since they can't be the branch is unreachable
  31.                             System.out.println("e");
  32.                             reason = result.getRight();
  33.                             return new ImmutablePair<>(changedRequest, reason);
  34.                         }
  35.                         updateData(changedRequest, newRequest);
  36.                     } else if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId())) {
  37.                         System.out.println("f");
  38.                         //unreachable statement?
  39.                         updateData(changedRequest, newRequest);
  40.                     }
  41.                 } else if (changedRequest.getRequestType().getId().equals(RequestTypeEnum.ADD_BOXES.getId())) {
  42.                     System.out.println("g");
  43.                     //trying to create boxes
  44.                     if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId())) {
  45.                         System.out.println("h");
  46.                         createBoxes(changedRequest.getNumberOfBig(), BoxSizeEnum.BIG, changedRequest.getTargetPostOffice());
  47.                         createBoxes(changedRequest.getNumberOfMiddle(), BoxSizeEnum.MEDIUM, changedRequest.getTargetPostOffice());
  48.                         createBoxes(changedRequest.getNumberOfSmall(), BoxSizeEnum.SMALL, changedRequest.getTargetPostOffice());
  49.                         updateData(changedRequest, newRequest);
  50.                     } else if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId())) {
  51.                         System.out.println("i");
  52.                         updateData(changedRequest, newRequest);
  53.                     }
  54.                 }
  55.                 System.out.println("j");
  56.                 changedRequest = requestRepo.save(changedRequest);
  57.  
  58.             } else {
  59.                 System.out.println("k");
  60.                 reason = "Заявка [" + changedRequest.getId() + "] не может быть обновлена, т.к. новый статус не может быть применён!";
  61.             }
  62.         } else {
  63.             System.out.println("l");
  64.             reason = "Заявка [" + changedRequest.getId() + "] не может быть обновлена, т.к. уже согласована или находится в том же самом статусе!";
  65.         }
  66.         return new ImmutablePair<>(changedRequest, reason);
  67.     }
  68.  
  69.  
  70.  
  71. @Test
  72.     public void testUpdateChangedRqStatusEqualsNewRqStatusAndChangedRqStatusIsNotToBeConsideredAndRqTypeIsDecomissionAndNewRqStatusIsApproved() {
  73.  
  74.         BoxStatus free = new BoxStatus();
  75.         free.setId(BoxStatusEnum.FREE.getId());
  76.         free.setStatus("Free");
  77.         BoxStatus bookedPaid = new BoxStatus();
  78.         bookedPaid.setId(BoxStatusEnum.BOOKED_PAID.getId());
  79.         bookedPaid.setStatus("Booked Paid");
  80.         BoxStatus decomissioned = new BoxStatus();
  81.         decomissioned.setId(BoxStatusEnum.DECOMMISSIONED.getId());
  82.         decomissioned.setStatus("Decomissioned");
  83.         BoxStatus onRemoval = new BoxStatus();
  84.         onRemoval.setId(BoxStatusEnum.ON_REMOVAL.getId());
  85.         onRemoval.setStatus("On Removal");
  86.  
  87.         RequestStatus rqStatApproved = new RequestStatus();
  88.         rqStatApproved.setId(RequestStatusEnum.APPROVED.getId());
  89.         RequestStatus rqStatToBeConsidered = new RequestStatus();
  90.         rqStatToBeConsidered.setId(RequestStatusEnum.TO_BE_CONSIDERED.getId());
  91.         RequestStatus rqStatDeclined = new RequestStatus();
  92.         rqStatDeclined.setId(RequestStatusEnum.DECLINED.getId());
  93.  
  94.         Box box1 = new Box();
  95.         box1.setNumber("num1");
  96.         box1.setStatus(free);
  97.         box1.setId(1L);
  98.         Box box2 = new Box();
  99.         box2.setNumber("num2");
  100.         box2.setStatus(bookedPaid);
  101.         box2.setId(2L);
  102.         Box box3 = new Box();
  103.         box3.setStatus(decomissioned);
  104.  
  105.         RequestType rqTypeDecommission = new RequestType();
  106.         rqTypeDecommission.setId(RequestTypeEnum.DECOMMISSION_A_BOX.getId());
  107.         RequestType rqTypeAddBoxes = new RequestType();
  108.         rqTypeAddBoxes.setId(RequestTypeEnum.ADD_BOXES.getId());
  109.  
  110.         Request changedRq = new Request();
  111.         changedRq.setBoxToBeAltered(box1);
  112.         changedRq.setId(1L);
  113.         changedRq.setRequestStatus(rqStatToBeConsidered);
  114.         changedRq.setRequestType(rqTypeDecommission);
  115.  
  116.         /*Request changedCopy = new Request();
  117.         changedCopy.setBoxToBeAltered(box1);
  118.         changedCopy.setId(1L);
  119.         changedCopy.setRequestStatus(rqStatToBeConsidered);
  120.         changedCopy.setRequestType(rqTypeDecommission);
  121.         changedCopy.setCreateDate(ZonedDateTime.now().minusMonths(1));*/
  122.  
  123.         Request newRq = new Request();
  124.         newRq.setBoxToBeAltered(box2);
  125.         newRq.setId(2L);
  126.         newRq.setRequestStatus(rqStatDeclined);
  127.         newRq.setRequestType(rqTypeAddBoxes);
  128.  
  129.         //upd Data:
  130.         expect(requestRepoMock.save(changedRq)).andReturn(newRq);
  131.  
  132.         //deocmmission a box:
  133.         expect(boxRepoMock.findOne(newRq.getBoxToBeAltered().getId())).andReturn(box2);
  134.         expect(boxStatusRepoMock.findOne(free.getId())).andReturn(free);
  135.         expect(boxStatusRepoMock.findOne(decomissioned.getId())).andReturn(decomissioned);
  136.         expect(boxStatusRepoMock.findOne(onRemoval.getId())).andReturn(onRemoval);
  137.  
  138.         expect(boxRepoMock.save(box2)).andReturn(box3);
  139.  
  140.         //upda Data:
  141.         //expect(requestRepoMock.save(changedCopy)).andReturn(changedCopy);
  142.  
  143.         mockControl.replay();
  144.         ImmutablePair<Request, String> updRq = requestController.update(changedRq, newRq);
  145.         mockControl.verify();
  146.  
  147.         Assert.assertNull(updRq.getRight());
  148.         Assert.assertEquals(updRq.getLeft().getRequestStatus().getId(),
  149.                 newRq.getRequestStatus().getId());
  150.     }
  151.  
  152.  
  153.     @Test
  154.     public void testUpdateChangedRqStatusEqualsNewRqStatusAndChangedRqStatusIsNotToBeConsideredAndRqTypeIsDecomissionAndNewRqStatusIsApprovedAndResultReasonIsNotBlank() {
  155.  
  156.         BoxStatus free = new BoxStatus();
  157.         free.setId(BoxStatusEnum.FREE.getId());
  158.         free.setStatus("Free");
  159.         BoxStatus bookedPaid = new BoxStatus();
  160.         bookedPaid.setId(BoxStatusEnum.BOOKED_PAID.getId());
  161.         bookedPaid.setStatus("Booked Paid");
  162.         BoxStatus decomissioned = new BoxStatus();
  163.         decomissioned.setId(BoxStatusEnum.DECOMMISSIONED.getId());
  164.         decomissioned.setStatus("Decomissioned");
  165.         BoxStatus onRemoval = new BoxStatus();
  166.         onRemoval.setId(BoxStatusEnum.ON_REMOVAL.getId());
  167.         onRemoval.setStatus("On Removal");
  168.  
  169.         RequestStatus rqStatApproved = new RequestStatus();
  170.         rqStatApproved.setId(RequestStatusEnum.APPROVED.getId());
  171.         RequestStatus rqStatToBeConsidered = new RequestStatus();
  172.         rqStatToBeConsidered.setId(RequestStatusEnum.TO_BE_CONSIDERED.getId());
  173.         RequestStatus rqStatDeclined = new RequestStatus();
  174.         rqStatDeclined.setId(RequestStatusEnum.DECLINED.getId());
  175.  
  176.         Box box1 = new Box();
  177.         box1.setNumber("num1");
  178.         box1.setStatus(free);
  179.         box1.setId(1L);
  180.         Box box2 = new Box();
  181.         box2.setNumber("num2");
  182.         box2.setStatus(bookedPaid);
  183.         box2.setId(2L);
  184.         Box box3 = new Box();
  185.         box3.setStatus(decomissioned);
  186.  
  187.         RequestType rqTypeDecommission = new RequestType();
  188.         rqTypeDecommission.setId(RequestTypeEnum.DECOMMISSION_A_BOX.getId());
  189.         RequestType rqTypeAddBoxes = new RequestType();
  190.         rqTypeAddBoxes.setId(RequestTypeEnum.ADD_BOXES.getId());
  191.  
  192.         Request changedRq = new Request();
  193.         changedRq.setBoxToBeAltered(box1);
  194.         changedRq.setId(1L);
  195.         changedRq.setRequestStatus(rqStatToBeConsidered);
  196.         changedRq.setRequestType(rqTypeDecommission);
  197.         //changedRq.setNumberOfBig(1);
  198.  
  199.         Request newRq = new Request();
  200.         newRq.setBoxToBeAltered(box2);
  201.         newRq.setId(2L);
  202.         newRq.setRequestStatus(rqStatToBeConsidered);
  203.         newRq.setRequestType(rqTypeAddBoxes);
  204.  
  205.         //upd Data:
  206.         expect(requestRepoMock.save(changedRq)).andReturn(newRq);
  207.  
  208.         //deocmmission a box:
  209.         expect(boxRepoMock.findOne(newRq.getBoxToBeAltered().getId())).andReturn(box2);
  210.         expect(boxStatusRepoMock.findOne(free.getId())).andReturn(free);
  211.         expect(boxStatusRepoMock.findOne(decomissioned.getId())).andReturn(decomissioned);
  212.         expect(boxStatusRepoMock.findOne(onRemoval.getId())).andReturn(onRemoval);
  213.  
  214.         expect(boxRepoMock.save(box2)).andReturn(box3);
  215.  
  216.         //upda Data:
  217.         expect(requestRepoMock.save(newRq)).andReturn(newRq);
  218.  
  219.         mockControl.replay();
  220.         ImmutablePair<Request, String> updRq = requestController.update(changedRq, newRq);
  221.         mockControl.verify();
  222.  
  223.         Assert.assertNull(updRq.getRight());
  224.         Assert.assertEquals(updRq.getLeft().getRequestStatus().getId(),
  225.                 newRq.getRequestStatus().getId());
  226.     }
Advertisement
Add Comment
Please, Sign In to add comment