Skip to content

Commit 99bfa3e

Browse files
committed
fix(rust/signed-doc): fix unit tests to support DocLocator
* removes support for old version
1 parent d723d47 commit 99bfa3e

File tree

9 files changed

+153
-294
lines changed

9 files changed

+153
-294
lines changed

rust/signed_doc/src/metadata/chain.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ mod tests {
127127
use minicbor::{Decode, Decoder, Encode, Encoder};
128128

129129
use super::*;
130-
use crate::DocLocator;
131130

132131
#[test]
133132
fn test_chain_encode_decode_without_doc_ref() {
@@ -151,9 +150,26 @@ mod tests {
151150
let id = UuidV7::new();
152151
let ver = UuidV7::new();
153152

153+
// Create a test document to generate a valid CID for DocLocator
154+
let test_doc = crate::Builder::new()
155+
.with_json_metadata(serde_json::json!({
156+
"id": id.to_string(),
157+
"ver": ver.to_string(),
158+
"type": "ab7c2428-c353-4331-856e-385b2eb20546",
159+
"content-type": crate::ContentType::Json,
160+
}))
161+
.expect("Should create metadata")
162+
.with_json_content(&serde_json::json!({"test": "content"}))
163+
.expect("Should set content")
164+
.build()
165+
.expect("Should build document");
166+
167+
let cid = test_doc.to_cid_v1().expect("Should generate CID");
168+
let doc_locator = crate::DocLocator::from(cid);
169+
154170
let chain = Chain {
155171
height: 3,
156-
document_ref: Some(DocumentRef::new(id, ver, DocLocator::default())),
172+
document_ref: Some(DocumentRef::new(id, ver, doc_locator)),
157173
};
158174

159175
let mut buf = Vec::new();

rust/signed_doc/src/providers.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ pub mod tests {
8989
if let Some(dr) = doc_ref {
9090
self.signed_doc.insert(dr, doc.clone());
9191
} else {
92-
let dr = DocumentRef::new(doc.doc_id()?, doc.doc_ver()?, DocLocator::default());
92+
let cid = doc.to_cid_v1()?;
93+
let dr = DocumentRef::new(doc.doc_id()?, doc.doc_ver()?, DocLocator::from(cid));
9394
self.signed_doc.insert(dr, doc.clone());
9495
}
9596
Ok(())

rust/signed_doc/src/validator/rules/chain/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,8 +197,8 @@ async fn test_valid_chained_documents(
197197
.build();
198198
let first_doc_ref = DocumentRef::try_from(&first).unwrap();
199199
200-
// same version
201-
let last_doc_ver = first_doc_ver;
200+
// version not greater than first (using an earlier timestamp)
201+
let last_doc_ver = helper::get_now_plus_uuidv7(-60);
202202
let last = Builder::new()
203203
.with_metadata_field(SupportedField::Type(DocType::from(doc_type)))
204204
.with_metadata_field(SupportedField::Id(doc_id))

rust/signed_doc/src/validator/rules/doc_ref/tests.rs

Lines changed: 28 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ use test_case::test_case;
33

44
use super::*;
55
use crate::{
6-
DocLocator, DocumentRef, builder::tests::Builder, metadata::SupportedField,
6+
DocumentRef, builder::tests::Builder, metadata::SupportedField,
7+
metadata::document_refs::doc_locator::tests::create_dummy_doc_locator,
78
providers::tests::TestCatalystProvider,
89
};
910

@@ -18,11 +19,7 @@ use crate::{
1819
1920
Builder::new()
2021
.with_metadata_field(SupportedField::Ref(
21-
vec![DocumentRef::new(
22-
ref_doc.doc_id().unwrap(),
23-
ref_doc.doc_ver().unwrap(),
24-
DocLocator::default(),
25-
)]
22+
vec![DocumentRef::try_from(&ref_doc).unwrap()]
2623
.into(),
2724
))
2825
.build()
@@ -54,21 +51,11 @@ use crate::{
5451
5552
Builder::new()
5653
.with_metadata_field(SupportedField::Ref(
57-
vec![DocumentRef::new(
58-
ref_doc_1.doc_id().unwrap(),
59-
ref_doc_1.doc_ver().unwrap(),
60-
DocLocator::default(),
61-
),
62-
DocumentRef::new(
63-
ref_doc_2.doc_id().unwrap(),
64-
ref_doc_2.doc_ver().unwrap(),
65-
DocLocator::default(),
66-
),
67-
DocumentRef::new(
68-
ref_doc_3.doc_id().unwrap(),
69-
ref_doc_3.doc_ver().unwrap(),
70-
DocLocator::default(),
71-
)]
54+
vec![
55+
DocumentRef::try_from(&ref_doc_1).unwrap(),
56+
DocumentRef::try_from(&ref_doc_2).unwrap(),
57+
DocumentRef::try_from(&ref_doc_3).unwrap(),
58+
]
7259
.into(),
7360
))
7461
.build()
@@ -100,21 +87,11 @@ use crate::{
10087
10188
Builder::new()
10289
.with_metadata_field(SupportedField::Ref(
103-
vec![DocumentRef::new(
104-
ref_doc_1.doc_id().unwrap(),
105-
ref_doc_1.doc_ver().unwrap(),
106-
DocLocator::default(),
107-
),
108-
DocumentRef::new(
109-
ref_doc_2.doc_id().unwrap(),
110-
ref_doc_2.doc_ver().unwrap(),
111-
DocLocator::default(),
112-
),
113-
DocumentRef::new(
114-
ref_doc_3.doc_id().unwrap(),
115-
ref_doc_3.doc_ver().unwrap(),
116-
DocLocator::default(),
117-
)]
90+
vec![
91+
DocumentRef::try_from(&ref_doc_1).unwrap(),
92+
DocumentRef::try_from(&ref_doc_2).unwrap(),
93+
DocumentRef::try_from(&ref_doc_3).unwrap(),
94+
]
11895
.into(),
11996
))
12097
.build()
@@ -145,21 +122,11 @@ use crate::{
145122
146123
Builder::new()
147124
.with_metadata_field(SupportedField::Ref(
148-
vec![DocumentRef::new(
149-
ref_doc_1.doc_id().unwrap(),
150-
ref_doc_1.doc_ver().unwrap(),
151-
DocLocator::default(),
152-
),
153-
DocumentRef::new(
154-
ref_doc_2.doc_id().unwrap(),
155-
ref_doc_2.doc_ver().unwrap(),
156-
DocLocator::default(),
157-
),
158-
DocumentRef::new(
159-
ref_doc_3.doc_id().unwrap(),
160-
ref_doc_3.doc_ver().unwrap(),
161-
DocLocator::default(),
162-
)]
125+
vec![
126+
DocumentRef::try_from(&ref_doc_1).unwrap(),
127+
DocumentRef::try_from(&ref_doc_2).unwrap(),
128+
DocumentRef::try_from(&ref_doc_3).unwrap(),
129+
]
163130
.into(),
164131
))
165132
.build()
@@ -175,15 +142,11 @@ use crate::{
175142
.with_metadata_field(SupportedField::Ver(UuidV7::new()))
176143
.with_metadata_field(SupportedField::Type(exp_types[0].clone()))
177144
.build();
178-
provider.add_document(Some(DocumentRef::new(UuidV7::new(), UuidV7::new(), DocLocator::default())), &ref_doc).unwrap();
145+
provider.add_document(Some(DocumentRef::new(UuidV7::new(), UuidV7::new(), create_dummy_doc_locator())), &ref_doc).unwrap();
179146
180147
Builder::new()
181148
.with_metadata_field(SupportedField::Ref(
182-
vec![DocumentRef::new(
183-
ref_doc.doc_id().unwrap(),
184-
ref_doc.doc_ver().unwrap(),
185-
DocLocator::default(),
186-
)]
149+
vec![DocumentRef::try_from(&ref_doc).unwrap()]
187150
.into(),
188151
))
189152
.build()
@@ -199,7 +162,7 @@ use crate::{
199162
vec![DocumentRef::new(
200163
UuidV7::new(),
201164
UuidV7::new(),
202-
DocLocator::default(),
165+
create_dummy_doc_locator(),
203166
),
204167
]
205168
.into(),
@@ -253,11 +216,7 @@ async fn ref_multiple_specified_test(
253216
254217
Builder::new()
255218
.with_metadata_field(SupportedField::Ref(
256-
vec![DocumentRef::new(
257-
ref_doc.doc_id().unwrap(),
258-
ref_doc.doc_ver().unwrap(),
259-
DocLocator::default(),
260-
)]
219+
vec![DocumentRef::try_from(&ref_doc).unwrap()]
261220
.into(),
262221
))
263222
.build()
@@ -289,21 +248,11 @@ async fn ref_multiple_specified_test(
289248
290249
Builder::new()
291250
.with_metadata_field(SupportedField::Ref(
292-
vec![DocumentRef::new(
293-
ref_doc_1.doc_id().unwrap(),
294-
ref_doc_1.doc_ver().unwrap(),
295-
DocLocator::default(),
296-
),
297-
DocumentRef::new(
298-
ref_doc_2.doc_id().unwrap(),
299-
ref_doc_2.doc_ver().unwrap(),
300-
DocLocator::default(),
301-
),
302-
DocumentRef::new(
303-
ref_doc_3.doc_id().unwrap(),
304-
ref_doc_3.doc_ver().unwrap(),
305-
DocLocator::default(),
306-
)]
251+
vec![
252+
DocumentRef::try_from(&ref_doc_1).unwrap(),
253+
DocumentRef::try_from(&ref_doc_2).unwrap(),
254+
DocumentRef::try_from(&ref_doc_3).unwrap(),
255+
]
307256
.into(),
308257
))
309258
.build()
@@ -379,7 +328,7 @@ async fn ref_rule_not_specified_test() {
379328
let ref_ver = UuidV7::new();
380329
let doc = Builder::new()
381330
.with_metadata_field(SupportedField::Ref(
382-
vec![DocumentRef::new(ref_id, ref_ver, DocLocator::default())].into(),
331+
vec![DocumentRef::new(ref_id, ref_ver, create_dummy_doc_locator())].into(),
383332
))
384333
.build();
385334
assert!(!rule.check(&doc, &provider).await.unwrap());

rust/signed_doc/src/validator/rules/ownership/tests/ref_field_based.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ use ed25519_dalek::ed25519::signature::Signer;
66
use test_case::test_case;
77

88
use crate::{
9-
CatalystSignedDocument, DocLocator, DocumentRef,
9+
CatalystSignedDocument, DocumentRef,
1010
builder::tests::Builder,
1111
metadata::SupportedField,
12+
metadata::document_refs::doc_locator::tests::create_dummy_doc_locator,
1213
providers::tests::TestCatalystProvider,
1314
validator::rules::{DocumentOwnershipRule, utils::create_dummy_key_pair},
1415
};
@@ -34,7 +35,7 @@ use crate::{
3435
DocumentRef::new(
3536
doc.doc_id().unwrap(),
3637
doc.doc_ver().unwrap(),
37-
DocLocator::default()
38+
create_dummy_doc_locator()
3839
)
3940
].into()
4041
))
@@ -67,7 +68,7 @@ use crate::{
6768
DocumentRef::new(
6869
doc.doc_id().unwrap(),
6970
doc.doc_ver().unwrap(),
70-
DocLocator::default()
71+
create_dummy_doc_locator()
7172
)
7273
].into()
7374
))
@@ -122,7 +123,7 @@ use crate::{
122123
DocumentRef::new(
123124
doc.doc_id().unwrap(),
124125
doc.doc_ver().unwrap(),
125-
DocLocator::default()
126+
create_dummy_doc_locator()
126127
)
127128
].into()
128129
))

0 commit comments

Comments
 (0)