dpp/tests/fixtures/
get_dashpay_document_fixture.rs1use platform_value::patch::merge;
2use platform_value::{platform_value, BinaryData, Value};
3
4use crate::document::document_factory::DocumentFactory;
5use crate::document::Document;
6use crate::{prelude::Identifier, tests::utils::generate_random_identifier_struct};
7
8use super::get_dashpay_contract_fixture;
9
10#[cfg(feature = "extended-document")]
11use crate::document::ExtendedDocument;
12use crate::prelude::IdentityNonce;
13
14pub fn get_contact_request_document_fixture(
15 owner_id: Option<Identifier>,
16 identity_nonce: IdentityNonce,
17 additional_data: Option<Value>,
18 protocol_version: u32,
19) -> Document {
20 let owner_id = owner_id.unwrap_or_else(generate_random_identifier_struct);
21 let data_contract =
22 get_dashpay_contract_fixture(None, identity_nonce, protocol_version).data_contract_owned();
23
24 let factory = DocumentFactory::new(protocol_version)
25 .expect("expected to create factory for get_contact_request_document_fixture");
26
27 let mut data = platform_value! ({
28 "toUserId": Identifier::new([0_u8;32]),
29 "encryptedPublicKey": BinaryData::new([0_u8;96].to_vec()),
30 "senderKeyIndex": 0u32,
31 "recipientKeyIndex": 0u32,
32 "accountReference": 0u32,
33 });
34
35 if let Some(additional_data) = additional_data {
36 merge(&mut data, &additional_data)
37 }
38
39 factory
40 .create_document(&data_contract, owner_id, "contactRequest".to_string(), data)
41 .expect("the document dashpay contact request should be created")
42}
43
44#[cfg(feature = "extended-document")]
45pub fn get_contact_request_extended_document_fixture(
46 owner_id: Option<Identifier>,
47 identity_nonce: IdentityNonce,
48 additional_data: Option<Value>,
49 protocol_version: u32,
50) -> ExtendedDocument {
51 let owner_id = owner_id.unwrap_or_else(generate_random_identifier_struct);
52 let data_contract =
53 get_dashpay_contract_fixture(None, identity_nonce, protocol_version).data_contract_owned();
54
55 let factory = DocumentFactory::new(protocol_version).expect("expected document factory");
56
57 let mut data = platform_value! ({
58 "toUserId": Identifier::new([0_u8;32]),
59 "encryptedPublicKey": BinaryData::new([0_u8;96].to_vec()),
60 "senderKeyIndex": 0u32,
61 "recipientKeyIndex": 0u32,
62 "accountReference": 0u32,
63 });
64
65 if let Some(additional_data) = additional_data {
66 merge(&mut data, &additional_data)
67 }
68
69 factory
70 .create_extended_document(&data_contract, owner_id, "contactRequest".to_string(), data)
71 .expect("the document dashpay contact request should be created")
72}