dpp/tests/fixtures/
get_dashpay_document_fixture.rs

1use 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}