update ProcessState tests

This commit is contained in:
NicolasCantu 2025-06-03 18:13:16 +02:00
parent e05929ace1
commit 304b1d0cc9

View File

@ -582,7 +582,7 @@ pub fn check_tx_for_process_updates(tx: &Transaction) -> anyhow::Result<OutPoint
mod tests {
use std::str::FromStr;
use serde_json::json;
use serde_json::{json, Value};
use sp_client::{
bitcoin::{secp256k1::SecretKey, Network, Txid},
silentpayments::SilentPaymentAddress,
@ -744,19 +744,19 @@ mod tests {
("apophis".to_owned(), role_def_apophis)
]);
let private_data: BTreeMap<String, Value> = serde_json::from_value(json!({
let private_data: Pcd = json!({
"field1": "value1",
"field2": "value2",
})).unwrap();
}).try_into().unwrap();
let outpoint = OutPoint::null();
let public_data: BTreeMap<String, Value> = serde_json::from_value(json!({
let public_data: Pcd = json!({
"public1": "public1",
"public2": "public2",
})).unwrap();
}).try_into().unwrap();
ProcessState::new(outpoint, Pcd::new(private_data), Pcd::new(public_data), Roles::new(roles)).unwrap()
ProcessState::new(outpoint, private_data, public_data, Roles::new(roles)).unwrap()
}
fn create_pairing_process_one() -> ProcessState {
@ -772,11 +772,11 @@ mod tests {
let outpoint = OutPoint::from_str("8425e9749957fd8ca83460c21718be4017692fd3ae61cbb0f0d401e7a5ddce6a:0").unwrap();
let private_data = BTreeMap::from([("description".to_owned(), Value::String("pairing".to_owned()))]);
let private_data: Pcd = json!({"description": "pairing"}).try_into().unwrap();
let paired_addresses = Value::Array(vec![Value::String(carol_address.to_string())]);
let paired_addresses: Pcd = json!({PAIREDADDRESSES: [carol_address]}).try_into().unwrap();
ProcessState::new(outpoint, Pcd::new(private_data), Pcd::new(BTreeMap::from([(PAIREDADDRESSES.to_owned(), paired_addresses)])), Roles::new(BTreeMap::from([(PAIRING.to_owned(), pairing_role_def)]))).unwrap()
ProcessState::new(outpoint, private_data, paired_addresses, Roles::new(BTreeMap::from([(PAIRING.to_owned(), pairing_role_def)]))).unwrap()
}
fn create_pairing_process_two() -> ProcessState {
@ -794,14 +794,11 @@ mod tests {
let outpoint = OutPoint::from_str("8425e9749957fd8ca83460c21718be4017692fd3ae61cbb0f0d401e7a5ddce6a:0").unwrap();
let private_data = BTreeMap::from([("description".to_owned(), Value::String("pairing".to_owned()))]);
let private_data: Pcd = json!({"description": "pairing"}).try_into().unwrap();
let paired_addresses = Value::Array(vec![
Value::String(carol_address.to_string()),
Value::String(dave_address.to_string())
]);
let paired_addresses: Pcd = json!({PAIREDADDRESSES: [carol_address, dave_address]}).try_into().unwrap();
ProcessState::new(outpoint, Pcd::new(private_data), Pcd::new(BTreeMap::from([(PAIREDADDRESSES.to_owned(), paired_addresses)])), Roles::new(BTreeMap::from([(PAIRING.to_owned(), pairing_role_def)]))).unwrap()
ProcessState::new(outpoint, private_data, paired_addresses, Roles::new(BTreeMap::from([(PAIRING.to_owned(), pairing_role_def)]))).unwrap()
}
#[test]
@ -945,7 +942,7 @@ mod tests {
#[test]
fn test_valid_pairing_add_device() {
let pairing_state = create_pairing_process_one();
let mut paired_addresses = pairing_state.public_data.get(PAIREDADDRESSES).unwrap().clone();
let mut paired_addresses: Vec<SilentPaymentAddress> = from_reader(pairing_state.public_data.get(PAIREDADDRESSES).unwrap().as_slice()).unwrap();
let mut pairing_process = Process::new(pairing_state.commited_in);
pairing_process.insert_concurrent_state(pairing_state).unwrap();
let new_commitment = OutPoint::from_str("7f1a6d8923d6ee58a075c0e99e25472bb22a3eea221739281c2beaf829f03f27:0").unwrap();
@ -956,17 +953,17 @@ mod tests {
(
pairing_process.get_process_id().unwrap(),
Member::new(
paired_addresses.as_array().unwrap().into_iter().map(|a| a.as_str().unwrap().try_into().unwrap()).collect()
paired_addresses.clone()
))
])
);
// Add Dave address
let dave_address = create_dave_wallet().get_receiving_address();
paired_addresses.as_array_mut().unwrap().push(Value::String(dave_address.to_string()));
paired_addresses.push(dave_address);
let roles = &pairing_process.get_latest_commited_state().unwrap().roles;
let mut add_device_state = ProcessState::new(new_commitment, Pcd::new(BTreeMap::new()), Pcd::new(BTreeMap::from([(PAIREDADDRESSES.to_owned(), paired_addresses)])), roles.clone()).unwrap();
let mut add_device_state = ProcessState::new(new_commitment, Pcd::new(BTreeMap::new()), json!({PAIREDADDRESSES: paired_addresses}).try_into().unwrap(), roles.clone()).unwrap();
let carol_key: SecretKey = create_carol_wallet()
.get_spend_key()
@ -982,7 +979,7 @@ mod tests {
#[test]
fn test_valid_pairing_rm_device() {
let pairing_state = create_pairing_process_two();
let paired_addresses = pairing_state.public_data.get(PAIREDADDRESSES).unwrap().clone();
let mut paired_addresses: Vec<SilentPaymentAddress> = from_reader(pairing_state.public_data.get(PAIREDADDRESSES).unwrap().as_slice()).unwrap();
let mut pairing_process = Process::new(pairing_state.commited_in);
pairing_process.insert_concurrent_state(pairing_state).unwrap();
let new_commitment = OutPoint::from_str("7f1a6d8923d6ee58a075c0e99e25472bb22a3eea221739281c2beaf829f03f27:0").unwrap();
@ -993,29 +990,27 @@ mod tests {
(
pairing_process.get_process_id().unwrap(),
Member::new(
paired_addresses.as_array().unwrap().into_iter().map(|a| a.as_str().unwrap().try_into().unwrap()).collect()
paired_addresses.clone()
))
])
);
// Remove Dave address
let dave_address = create_dave_wallet().get_receiving_address();
let paired_addresses = extract_paired_addresses(&paired_addresses).unwrap();
let filtered_paired_addresses = Value::from_iter(paired_addresses.into_iter().filter_map(|a| {
let filtered_paired_addresses: Vec<SilentPaymentAddress> = paired_addresses.into_iter().filter_map(|a| {
if a != dave_address {
Some(a.to_string())
Some(a)
} else {
None
}
}));
})
.collect();
let roles = &pairing_process.get_latest_commited_state().unwrap().roles;
let mut rm_device_state = ProcessState::new(
new_commitment,
Pcd::new(BTreeMap::new()),
Pcd::new(
BTreeMap::from([(PAIREDADDRESSES.to_owned(), filtered_paired_addresses)])
),
json!({PAIREDADDRESSES: filtered_paired_addresses}).try_into().unwrap(),
roles.clone()
).unwrap();
@ -1041,7 +1036,7 @@ mod tests {
#[test]
fn test_error_pairing_add_device_wrong_signature() {
let pairing_state = create_pairing_process_one();
let mut paired_addresses = pairing_state.public_data.get(PAIREDADDRESSES).unwrap().clone();
let mut paired_addresses: Vec<SilentPaymentAddress> = from_reader(pairing_state.public_data.get(PAIREDADDRESSES).unwrap().as_slice()).unwrap();
let mut pairing_process = Process::new(pairing_state.commited_in);
pairing_process.insert_concurrent_state(pairing_state).unwrap();
let new_commitment = OutPoint::from_str("7f1a6d8923d6ee58a075c0e99e25472bb22a3eea221739281c2beaf829f03f27:0").unwrap();
@ -1052,17 +1047,17 @@ mod tests {
(
pairing_process.get_process_id().unwrap(),
Member::new(
paired_addresses.as_array().unwrap().into_iter().map(|a| a.as_str().unwrap().try_into().unwrap()).collect()
paired_addresses.clone()
))
])
);
// Add Dave address
let dave_address = create_dave_wallet().get_receiving_address();
paired_addresses.as_array_mut().unwrap().push(Value::String(dave_address.to_string()));
paired_addresses.push(dave_address);
let roles = &pairing_process.get_latest_commited_state().unwrap().roles;
let mut add_device_state = ProcessState::new(new_commitment, Pcd::new(BTreeMap::new()), Pcd::new(BTreeMap::from([(PAIREDADDRESSES.to_owned(), paired_addresses)])), roles.clone()).unwrap();
let mut add_device_state = ProcessState::new(new_commitment, Pcd::new(BTreeMap::new()), json!({PAIREDADDRESSES: paired_addresses}).try_into().unwrap(), roles.clone()).unwrap();
let dave_key: SecretKey = create_dave_wallet()
.get_spend_key()
@ -1210,7 +1205,8 @@ mod tests {
let state = dummy_process_state();
let mut new_state = state.clone();
let key_to_modify = state.pcd_commitment.keys().into_iter().next().unwrap();
new_state.update_value(key_to_modify.as_str(), &Value::String("new_value1".to_string())).unwrap();
let updated_value = crate::serialization::ciborium_serialize(&Value::String("new_value1".to_owned())).unwrap();
new_state.update_value(key_to_modify.as_str(), updated_value.as_slice()).unwrap();
let alice_key: SecretKey = create_alice_wallet()
.get_spend_key()
.try_into()
@ -1237,7 +1233,8 @@ mod tests {
let state = dummy_process_state();
let mut new_state = state.clone();
let key_to_modify = state.pcd_commitment.keys().into_iter().next().unwrap();
new_state.update_value(key_to_modify.as_str(), &Value::String("new_value1".to_string())).unwrap();
let updated_value = crate::serialization::ciborium_serialize(&Value::String("new_value1".to_owned())).unwrap();
new_state.update_value(key_to_modify.as_str(), updated_value.as_slice()).unwrap();
let carol_key: SecretKey = create_carol_wallet()
.get_spend_key()
.try_into()