Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Transactional
- public ImmutablePair<Request, String> update(Request changedRequest, Request newRequest) {
- String reason = null;
- RequestStatus changedRequestStatus = changedRequest.getRequestStatus();
- RequestStatus newRequestStatus = newRequest.getRequestStatus();
- // we can update request only if status changed
- if (!changedRequestStatus.getId().equals(newRequestStatus.getId())) {
- System.out.println("a");
- if (changedRequest.getRequestStatus().getId().equals(RequestStatusEnum.TO_BE_CONSIDERED.getId()) &&
- (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId()) ||
- newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId()))) {
- System.out.println("b");
- if (changedRequest.getRequestType().getId().equals(RequestTypeEnum.DECOMMISSION_A_BOX.getId())) {
- //trying to decommission a box
- System.out.println("c");
- if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId()) ||
- (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId()))) {
- System.out.println("d");
- updateData(changedRequest, newRequest);
- ImmutablePair<Box, String> result = decommissionBoxConsideringItsStatus(newRequest);
- System.out.println(result.getLeft().getStatus().getStatus());
- if (StringUtils.isNotBlank(result.getRight())) {
- //unreachable statement ?:
- // decomBoxConsItsStatus returns not blank reason if its arg is NOT of status
- // APPROVED or DECLINED.
- // then newRequset status should be TO_BE_CONSIDERED.
- // 2nd nested if requires chnagedRequset status TO_BE_CONSIDERED
- // 1st if requiers newRequsetStatus and changedRequsetStatus to be different
- // since they can't be the branch is unreachable
- System.out.println("e");
- reason = result.getRight();
- return new ImmutablePair<>(changedRequest, reason);
- }
- updateData(changedRequest, newRequest);
- } else if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId())) {
- System.out.println("f");
- //unreachable statement?
- updateData(changedRequest, newRequest);
- }
- } else if (changedRequest.getRequestType().getId().equals(RequestTypeEnum.ADD_BOXES.getId())) {
- System.out.println("g");
- //trying to create boxes
- if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.APPROVED.getId())) {
- System.out.println("h");
- createBoxes(changedRequest.getNumberOfBig(), BoxSizeEnum.BIG, changedRequest.getTargetPostOffice());
- createBoxes(changedRequest.getNumberOfMiddle(), BoxSizeEnum.MEDIUM, changedRequest.getTargetPostOffice());
- createBoxes(changedRequest.getNumberOfSmall(), BoxSizeEnum.SMALL, changedRequest.getTargetPostOffice());
- updateData(changedRequest, newRequest);
- } else if (newRequest.getRequestStatus().getId().equals(RequestStatusEnum.DECLINED.getId())) {
- System.out.println("i");
- updateData(changedRequest, newRequest);
- }
- }
- System.out.println("j");
- changedRequest = requestRepo.save(changedRequest);
- } else {
- System.out.println("k");
- reason = "Заявка [" + changedRequest.getId() + "] не может быть обновлена, т.к. новый статус не может быть применён!";
- }
- } else {
- System.out.println("l");
- reason = "Заявка [" + changedRequest.getId() + "] не может быть обновлена, т.к. уже согласована или находится в том же самом статусе!";
- }
- return new ImmutablePair<>(changedRequest, reason);
- }
- @Test
- public void testUpdateChangedRqStatusEqualsNewRqStatusAndChangedRqStatusIsNotToBeConsideredAndRqTypeIsDecomissionAndNewRqStatusIsApproved() {
- BoxStatus free = new BoxStatus();
- free.setId(BoxStatusEnum.FREE.getId());
- free.setStatus("Free");
- BoxStatus bookedPaid = new BoxStatus();
- bookedPaid.setId(BoxStatusEnum.BOOKED_PAID.getId());
- bookedPaid.setStatus("Booked Paid");
- BoxStatus decomissioned = new BoxStatus();
- decomissioned.setId(BoxStatusEnum.DECOMMISSIONED.getId());
- decomissioned.setStatus("Decomissioned");
- BoxStatus onRemoval = new BoxStatus();
- onRemoval.setId(BoxStatusEnum.ON_REMOVAL.getId());
- onRemoval.setStatus("On Removal");
- RequestStatus rqStatApproved = new RequestStatus();
- rqStatApproved.setId(RequestStatusEnum.APPROVED.getId());
- RequestStatus rqStatToBeConsidered = new RequestStatus();
- rqStatToBeConsidered.setId(RequestStatusEnum.TO_BE_CONSIDERED.getId());
- RequestStatus rqStatDeclined = new RequestStatus();
- rqStatDeclined.setId(RequestStatusEnum.DECLINED.getId());
- Box box1 = new Box();
- box1.setNumber("num1");
- box1.setStatus(free);
- box1.setId(1L);
- Box box2 = new Box();
- box2.setNumber("num2");
- box2.setStatus(bookedPaid);
- box2.setId(2L);
- Box box3 = new Box();
- box3.setStatus(decomissioned);
- RequestType rqTypeDecommission = new RequestType();
- rqTypeDecommission.setId(RequestTypeEnum.DECOMMISSION_A_BOX.getId());
- RequestType rqTypeAddBoxes = new RequestType();
- rqTypeAddBoxes.setId(RequestTypeEnum.ADD_BOXES.getId());
- Request changedRq = new Request();
- changedRq.setBoxToBeAltered(box1);
- changedRq.setId(1L);
- changedRq.setRequestStatus(rqStatToBeConsidered);
- changedRq.setRequestType(rqTypeDecommission);
- /*Request changedCopy = new Request();
- changedCopy.setBoxToBeAltered(box1);
- changedCopy.setId(1L);
- changedCopy.setRequestStatus(rqStatToBeConsidered);
- changedCopy.setRequestType(rqTypeDecommission);
- changedCopy.setCreateDate(ZonedDateTime.now().minusMonths(1));*/
- Request newRq = new Request();
- newRq.setBoxToBeAltered(box2);
- newRq.setId(2L);
- newRq.setRequestStatus(rqStatDeclined);
- newRq.setRequestType(rqTypeAddBoxes);
- //upd Data:
- expect(requestRepoMock.save(changedRq)).andReturn(newRq);
- //deocmmission a box:
- expect(boxRepoMock.findOne(newRq.getBoxToBeAltered().getId())).andReturn(box2);
- expect(boxStatusRepoMock.findOne(free.getId())).andReturn(free);
- expect(boxStatusRepoMock.findOne(decomissioned.getId())).andReturn(decomissioned);
- expect(boxStatusRepoMock.findOne(onRemoval.getId())).andReturn(onRemoval);
- expect(boxRepoMock.save(box2)).andReturn(box3);
- //upda Data:
- //expect(requestRepoMock.save(changedCopy)).andReturn(changedCopy);
- mockControl.replay();
- ImmutablePair<Request, String> updRq = requestController.update(changedRq, newRq);
- mockControl.verify();
- Assert.assertNull(updRq.getRight());
- Assert.assertEquals(updRq.getLeft().getRequestStatus().getId(),
- newRq.getRequestStatus().getId());
- }
- @Test
- public void testUpdateChangedRqStatusEqualsNewRqStatusAndChangedRqStatusIsNotToBeConsideredAndRqTypeIsDecomissionAndNewRqStatusIsApprovedAndResultReasonIsNotBlank() {
- BoxStatus free = new BoxStatus();
- free.setId(BoxStatusEnum.FREE.getId());
- free.setStatus("Free");
- BoxStatus bookedPaid = new BoxStatus();
- bookedPaid.setId(BoxStatusEnum.BOOKED_PAID.getId());
- bookedPaid.setStatus("Booked Paid");
- BoxStatus decomissioned = new BoxStatus();
- decomissioned.setId(BoxStatusEnum.DECOMMISSIONED.getId());
- decomissioned.setStatus("Decomissioned");
- BoxStatus onRemoval = new BoxStatus();
- onRemoval.setId(BoxStatusEnum.ON_REMOVAL.getId());
- onRemoval.setStatus("On Removal");
- RequestStatus rqStatApproved = new RequestStatus();
- rqStatApproved.setId(RequestStatusEnum.APPROVED.getId());
- RequestStatus rqStatToBeConsidered = new RequestStatus();
- rqStatToBeConsidered.setId(RequestStatusEnum.TO_BE_CONSIDERED.getId());
- RequestStatus rqStatDeclined = new RequestStatus();
- rqStatDeclined.setId(RequestStatusEnum.DECLINED.getId());
- Box box1 = new Box();
- box1.setNumber("num1");
- box1.setStatus(free);
- box1.setId(1L);
- Box box2 = new Box();
- box2.setNumber("num2");
- box2.setStatus(bookedPaid);
- box2.setId(2L);
- Box box3 = new Box();
- box3.setStatus(decomissioned);
- RequestType rqTypeDecommission = new RequestType();
- rqTypeDecommission.setId(RequestTypeEnum.DECOMMISSION_A_BOX.getId());
- RequestType rqTypeAddBoxes = new RequestType();
- rqTypeAddBoxes.setId(RequestTypeEnum.ADD_BOXES.getId());
- Request changedRq = new Request();
- changedRq.setBoxToBeAltered(box1);
- changedRq.setId(1L);
- changedRq.setRequestStatus(rqStatToBeConsidered);
- changedRq.setRequestType(rqTypeDecommission);
- //changedRq.setNumberOfBig(1);
- Request newRq = new Request();
- newRq.setBoxToBeAltered(box2);
- newRq.setId(2L);
- newRq.setRequestStatus(rqStatToBeConsidered);
- newRq.setRequestType(rqTypeAddBoxes);
- //upd Data:
- expect(requestRepoMock.save(changedRq)).andReturn(newRq);
- //deocmmission a box:
- expect(boxRepoMock.findOne(newRq.getBoxToBeAltered().getId())).andReturn(box2);
- expect(boxStatusRepoMock.findOne(free.getId())).andReturn(free);
- expect(boxStatusRepoMock.findOne(decomissioned.getId())).andReturn(decomissioned);
- expect(boxStatusRepoMock.findOne(onRemoval.getId())).andReturn(onRemoval);
- expect(boxRepoMock.save(box2)).andReturn(box3);
- //upda Data:
- expect(requestRepoMock.save(newRq)).andReturn(newRq);
- mockControl.replay();
- ImmutablePair<Request, String> updRq = requestController.update(changedRq, newRq);
- mockControl.verify();
- Assert.assertNull(updRq.getRight());
- Assert.assertEquals(updRq.getLeft().getRequestStatus().getId(),
- newRq.getRequestStatus().getId());
- }
Advertisement
Add Comment
Please, Sign In to add comment