@@ -8,107 +8,60 @@ use ed25519_dalek::ed25519::signature::Signer;
88use test_case:: test_case;
99
1010use crate :: common:: {
11- create_dummy_key_pair,
11+ brand_parameters_doc , campaign_parameters_doc , category_parameters_doc , create_dummy_key_pair,
1212 dummies:: {
1313 BRAND_PARAMETERS_DOC , CAMPAIGN_PARAMETERS_DOC , CATEGORY_PARAMETERS_DOC ,
1414 PROPOSAL_TEMPLATE_FOR_BRAND_DOC , PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC ,
1515 PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC ,
1616 } ,
17+ proposal_doc, proposal_form_template_doc,
1718} ;
1819
1920mod common;
2021
2122#[ test_case(
2223 |provider| {
23- let id = UuidV7 :: new( ) ;
24- let ( sk, pk, kid) = create_dummy_key_pair( RoleId :: Proposer ) ?;
25- provider. add_pk( kid. clone( ) , pk) ;
26- // Create a main proposal doc, contain all fields mention in the document (except
27- // 'collaborators' and 'revocations')
28- let doc = Builder :: new( )
29- . with_json_metadata( serde_json:: json!( {
30- "content-type" : ContentType :: Json . to_string( ) ,
31- "content-encoding" : ContentEncoding :: Brotli . to_string( ) ,
32- "type" : doc_types:: PROPOSAL . clone( ) ,
33- "id" : id,
34- "ver" : id,
35- "template" : {
36- "id" : PROPOSAL_TEMPLATE_FOR_BRAND_DOC . doc_id( ) ?,
37- "ver" : PROPOSAL_TEMPLATE_FOR_BRAND_DOC . doc_ver( ) ?,
38- } ,
39- "parameters" : {
40- "id" : BRAND_PARAMETERS_DOC . doc_id( ) ?,
41- "ver" : BRAND_PARAMETERS_DOC . doc_ver( ) ?,
42- }
43- } ) ) ?
44- . with_json_content( & serde_json:: json!( { } ) ) ?
45- . add_signature( |m| sk. sign( & m) . to_vec( ) , kid) ?
46- . build( ) ?;
47- Ok ( doc)
24+ let brand_parameters_doc = brand_parameters_doc( ) . and_then( |doc| {
25+ provider. add_document( None , & doc) ?;
26+ Ok ( doc)
27+ } ) ?;
28+ let proposal_form_template_doc = proposal_form_template_doc( & brand_parameters_doc) . and_then( |doc| {
29+ provider. add_document( None , & doc) ?;
30+ Ok ( doc)
31+ } ) ?;
32+ proposal_doc( & proposal_form_template_doc, & brand_parameters_doc, provider)
4833 }
4934 => true
5035 ;
5136 "valid document with brand 'parameters'"
5237) ]
5338#[ test_case(
5439 |provider| {
55- let id = UuidV7 :: new( ) ;
56- let ( sk, pk, kid) = create_dummy_key_pair( RoleId :: Proposer ) ?;
57- provider. add_pk( kid. clone( ) , pk) ;
58- // Create a main proposal doc, contain all fields mention in the document (except
59- // 'collaborators' and 'revocations')
60- let doc = Builder :: new( )
61- . with_json_metadata( serde_json:: json!( {
62- "content-type" : ContentType :: Json . to_string( ) ,
63- "content-encoding" : ContentEncoding :: Brotli . to_string( ) ,
64- "type" : doc_types:: PROPOSAL . clone( ) ,
65- "id" : id,
66- "ver" : id,
67- "template" : {
68- "id" : PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC . doc_id( ) ?,
69- "ver" : PROPOSAL_TEMPLATE_FOR_CAMPAIGN_DOC . doc_ver( ) ?,
70- } ,
71- "parameters" : {
72- "id" : CAMPAIGN_PARAMETERS_DOC . doc_id( ) ?,
73- "ver" : CAMPAIGN_PARAMETERS_DOC . doc_ver( ) ?,
74- }
75- } ) ) ?
76- . with_json_content( & serde_json:: json!( { } ) ) ?
77- . add_signature( |m| sk. sign( & m) . to_vec( ) , kid) ?
78- . build( ) ?;
79- Ok ( doc)
40+ let parameters_doc = campaign_parameters_doc( ) . and_then( |doc| {
41+ provider. add_document( None , & doc) ?;
42+ Ok ( doc)
43+ } ) ?;
44+ let template_doc = proposal_form_template_doc( & parameters_doc) . and_then( |doc| {
45+ provider. add_document( None , & doc) ?;
46+ Ok ( doc)
47+ } ) ?;
48+ proposal_doc( & template_doc, & parameters_doc, provider)
8049 }
8150 => true
8251 ;
8352 "valid document with campaign 'parameters'"
8453) ]
8554#[ test_case(
8655 |provider| {
87- let id = UuidV7 :: new( ) ;
88- let ( sk, pk, kid) = create_dummy_key_pair( RoleId :: Proposer ) ?;
89- provider. add_pk( kid. clone( ) , pk) ;
90- // Create a main proposal doc, contain all fields mention in the document (except
91- // 'collaborators' and 'revocations')
92- let doc = Builder :: new( )
93- . with_json_metadata( serde_json:: json!( {
94- "content-type" : ContentType :: Json . to_string( ) ,
95- "content-encoding" : ContentEncoding :: Brotli . to_string( ) ,
96- "type" : doc_types:: PROPOSAL . clone( ) ,
97- "id" : id,
98- "ver" : id,
99- "template" : {
100- "id" : PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC . doc_id( ) ?,
101- "ver" : PROPOSAL_TEMPLATE_FOR_CATEGORY_DOC . doc_ver( ) ?,
102- } ,
103- "parameters" : {
104- "id" : CATEGORY_PARAMETERS_DOC . doc_id( ) ?,
105- "ver" : CATEGORY_PARAMETERS_DOC . doc_ver( ) ?,
106- }
107- } ) ) ?
108- . with_json_content( & serde_json:: json!( { } ) ) ?
109- . add_signature( |m| sk. sign( & m) . to_vec( ) , kid) ?
110- . build( ) ?;
111- Ok ( doc)
56+ let parameters_doc = category_parameters_doc( ) . and_then( |doc| {
57+ provider. add_document( None , & doc) ?;
58+ Ok ( doc)
59+ } ) ?;
60+ let template_doc = proposal_form_template_doc( & parameters_doc) . and_then( |doc| {
61+ provider. add_document( None , & doc) ?;
62+ Ok ( doc)
63+ } ) ?;
64+ proposal_doc( & template_doc, & parameters_doc, provider)
11265 }
11366 => true
11467 ;
0 commit comments