Newer
Older
// Finish the auction
run_to_block(110);
// Should have won the lease periods
assert_eq!(
slots::Leases::<Test>::get(ParaId::from(1001)),
// -- 1 --- 2 --- 3 ---------- 4 -------------- 5 -------------- 6 -------------- 7 -------
vec![None, None, None, Some((10, 100)), Some((20, 800)), Some((20, 200)), Some((10, 400))],
);
// Appropriate amount is reserved (largest of the values)
assert_eq!(Balances::reserved_balance(&10), 400);
// Appropriate amount is reserved (largest of the values)
assert_eq!(Balances::reserved_balance(&20), 800);
// Progress through the leases and note the correct amount of balance is reserved.
run_to_block(400);
assert_eq!(
slots::Leases::<Test>::get(ParaId::from(1001)),
// --------- 4 -------------- 5 -------------- 6 -------------- 7 -------
vec![Some((10, 100)), Some((20, 800)), Some((20, 200)), Some((10, 400))],
);
// Nothing changed.
assert_eq!(Balances::reserved_balance(&10), 400);
assert_eq!(Balances::reserved_balance(&20), 800);
// Lease period 4 is done, but nothing is unreserved since user 1 has a debt on lease 7
run_to_block(500);
assert_eq!(
slots::Leases::<Test>::get(ParaId::from(1001)),
// --------- 5 -------------- 6 -------------- 7 -------
vec![Some((20, 800)), Some((20, 200)), Some((10, 400))],
);
// Nothing changed.
assert_eq!(Balances::reserved_balance(&10), 400);
assert_eq!(Balances::reserved_balance(&20), 800);
// Lease period 5 is done, and 20 will unreserve down to 200.
run_to_block(600);
assert_eq!(
slots::Leases::<Test>::get(ParaId::from(1001)),
// --------- 6 -------------- 7 -------
vec![Some((20, 200)), Some((10, 400))],
);
assert_eq!(Balances::reserved_balance(&10), 400);
assert_eq!(Balances::reserved_balance(&20), 200);
// Lease period 6 is done, and 20 will unreserve everything.
run_to_block(700);
assert_eq!(
slots::Leases::<Test>::get(ParaId::from(1001)),
// --------- 7 -------
vec![Some((10, 400))],
);
assert_eq!(Balances::reserved_balance(&10), 400);
assert_eq!(Balances::reserved_balance(&20), 0);
// All leases are done. Everything is unreserved.
run_to_block(800);
assert_eq!(slots::Leases::<Test>::get(ParaId::from(1001)), vec![]);
assert_eq!(Balances::reserved_balance(&10), 0);
assert_eq!(Balances::reserved_balance(&20), 0);
});
}