| 767 | } |
| 768 | |
| 769 | pub fn create_transfer( |
| 770 | env: &PocketIc, |
| 771 | station_id: Principal, |
| 772 | requester: Principal, |
| 773 | input: station_api::TransferOperationInput, |
| 774 | ) -> station_api::TransferDTO { |
| 775 | // make transfer request to beneficiary |
| 776 | |
| 777 | let transfer_request = CreateRequestInput { |
| 778 | operation: RequestOperationInput::Transfer(input), |
| 779 | title: None, |
| 780 | summary: None, |
| 781 | expiration_dt: None, |
| 782 | execution_plan: Some(RequestExecutionScheduleDTO::Immediate), |
| 783 | deduplication_key: None, |
| 784 | tags: None, |
| 785 | }; |
| 786 | let res: (Result<CreateRequestResponse, ApiErrorDTO>,) = update_candid_as( |
| 787 | env, |
| 788 | station_id, |
| 789 | requester, |
| 790 | "create_request", |
| 791 | (transfer_request,), |
| 792 | ) |
| 793 | .unwrap(); |
| 794 | let request_dto = res.0.unwrap().request; |
| 795 | |
| 796 | // wait for the request to be approved (timer's period is 5 seconds) |
| 797 | env.advance_time(Duration::from_secs(5)); |
| 798 | env.tick(); |
| 799 | // wait for the request to be processing (timer's period is 5 seconds) and first is set to processing |
| 800 | env.advance_time(Duration::from_secs(5)); |
| 801 | env.tick(); |
| 802 | env.tick(); |
| 803 | env.tick(); |
| 804 | env.advance_time(Duration::from_secs(5)); |
| 805 | env.tick(); |
| 806 | env.tick(); |
| 807 | env.tick(); |
| 808 | |
| 809 | // check transfer request status |
| 810 | let get_request_args = GetRequestInput { |
| 811 | request_id: request_dto.id.clone(), |
| 812 | with_full_info: Some(false), |
| 813 | }; |
| 814 | let res: (Result<GetRequestResponse, ApiErrorDTO>,) = update_candid_as( |
| 815 | env, |
| 816 | station_id, |
| 817 | requester, |
| 818 | "get_request", |
| 819 | (get_request_args,), |
| 820 | ) |
| 821 | .unwrap(); |
| 822 | let new_request_dto = res.0.unwrap().request; |
| 823 | match new_request_dto.status { |
| 824 | RequestStatusDTO::Completed { .. } => {} |
| 825 | _ => { |
| 826 | panic!( |