Skip to content

Commit 06a9beb

Browse files
authored
Merge pull request #2615 from input-output-hk/djo/test/enhance-chain_builder-and-mock_build
test:enhance certificate chain builder and mock build
2 parents 546b1a1 + 4ec743e commit 06a9beb

File tree

14 files changed

+363
-165
lines changed

14 files changed

+363
-165
lines changed

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mithril-aggregator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-aggregator"
3-
version = "0.7.68"
3+
version = "0.7.69"
44
description = "A Mithril Aggregator server"
55
authors = { workspace = true }
66
edition = { workspace = true }

mithril-aggregator/src/database/query/certificate/get_certificate.rs

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -71,28 +71,28 @@ mod tests {
7171

7272
#[test]
7373
fn test_get_certificate_records_by_epoch() {
74-
let (certificates, _) = setup_certificate_chain(20, 7);
74+
let certificates = setup_certificate_chain(20, 7);
7575

7676
let connection = main_db_connection().unwrap();
77-
insert_certificate_records(&connection, certificates.clone());
77+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
7878

7979
let certificate_records: Vec<CertificateRecord> = connection
8080
.fetch_collect(GetCertificateRecordQuery::by_epoch(Epoch(1)).unwrap())
8181
.unwrap();
8282
let expected_certificate_records: Vec<CertificateRecord> = certificates
83-
.iter()
83+
.reversed_chain()
84+
.into_iter()
8485
.filter_map(|c| (c.epoch == Epoch(1)).then_some(c.to_owned().into()))
85-
.rev()
8686
.collect();
8787
assert_eq!(expected_certificate_records, certificate_records);
8888

8989
let certificate_records: Vec<CertificateRecord> = connection
9090
.fetch_collect(GetCertificateRecordQuery::by_epoch(Epoch(3)).unwrap())
9191
.unwrap();
9292
let expected_certificate_records: Vec<CertificateRecord> = certificates
93-
.iter()
93+
.reversed_chain()
94+
.into_iter()
9495
.filter_map(|c| (c.epoch == Epoch(3)).then_some(c.to_owned().into()))
95-
.rev()
9696
.collect();
9797
assert_eq!(expected_certificate_records, certificate_records);
9898

@@ -104,15 +104,15 @@ mod tests {
104104

105105
#[test]
106106
fn test_get_all_certificate_records() {
107-
let (certificates, _) = setup_certificate_chain(5, 2);
107+
let certificates = setup_certificate_chain(5, 2);
108108
let expected_certificate_records: Vec<CertificateRecord> = certificates
109-
.iter()
110-
.map(|c| c.to_owned().into())
111-
.rev()
109+
.reversed_chain()
110+
.into_iter()
111+
.map(Into::into)
112112
.collect();
113113

114114
let connection = main_db_connection().unwrap();
115-
insert_certificate_records(&connection, certificates.clone());
115+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
116116

117117
let certificate_records: Vec<CertificateRecord> = connection
118118
.fetch_collect(GetCertificateRecordQuery::all())
@@ -123,26 +123,30 @@ mod tests {
123123
#[test]
124124
fn test_get_all_genesis_certificate_records() {
125125
// Two chains with different protocol parameters so generated certificates are different.
126-
let (first_certificates_chain, _) = CertificateChainBuilder::new()
126+
let first_certificates_chain = CertificateChainBuilder::new()
127127
.with_total_certificates(2)
128128
.with_protocol_parameters(ProtocolParameters {
129129
m: 90,
130130
k: 4,
131131
phi_f: 0.65,
132132
})
133133
.build();
134-
let first_chain_genesis: CertificateRecord =
135-
first_certificates_chain.last().unwrap().clone().into();
136-
let (second_certificates_chain, _) = CertificateChainBuilder::new()
134+
let first_chain_genesis: CertificateRecord = first_certificates_chain
135+
.genesis_certificate()
136+
.clone()
137+
.into();
138+
let second_certificates_chain = CertificateChainBuilder::new()
137139
.with_total_certificates(2)
138140
.with_protocol_parameters(ProtocolParameters {
139141
m: 100,
140142
k: 5,
141143
phi_f: 0.65,
142144
})
143145
.build();
144-
let second_chain_genesis: CertificateRecord =
145-
second_certificates_chain.last().unwrap().clone().into();
146+
let second_chain_genesis: CertificateRecord = second_certificates_chain
147+
.genesis_certificate()
148+
.clone()
149+
.into();
146150
assert_ne!(first_chain_genesis, second_chain_genesis);
147151

148152
let connection = main_db_connection().unwrap();
@@ -151,14 +155,14 @@ mod tests {
151155
.unwrap();
152156
assert_eq!(Vec::<CertificateRecord>::new(), certificate_records);
153157

154-
insert_certificate_records(&connection, first_certificates_chain);
158+
insert_certificate_records(&connection, first_certificates_chain.certificates_chained);
155159

156160
let certificate_records: Vec<CertificateRecord> = connection
157161
.fetch_collect(GetCertificateRecordQuery::all_genesis())
158162
.unwrap();
159163
assert_eq!(vec![first_chain_genesis.to_owned()], certificate_records);
160164

161-
insert_certificate_records(&connection, second_certificates_chain);
165+
insert_certificate_records(&connection, second_certificates_chain.certificates_chained);
162166

163167
let certificate_records: Vec<CertificateRecord> = connection
164168
.fetch_collect(GetCertificateRecordQuery::all_genesis())

mithril-aggregator/src/database/query/certificate/insert_certificate.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,11 @@ mod tests {
111111

112112
#[test]
113113
fn test_insert_certificate_record() {
114-
let (certificates, _) = setup_certificate_chain(5, 2);
114+
let certificates = setup_certificate_chain(5, 2);
115115

116116
let connection = main_db_connection().unwrap();
117117

118-
for certificate in certificates {
118+
for certificate in certificates.certificates_chained {
119119
let certificate_record: CertificateRecord = certificate.into();
120120
let certificate_record_saved = connection
121121
.fetch_first(InsertCertificateRecordQuery::one(
@@ -128,9 +128,8 @@ mod tests {
128128

129129
#[test]
130130
fn test_insert_many_certificates_records() {
131-
let (certificates, _) = setup_certificate_chain(5, 2);
132-
let certificates_records: Vec<CertificateRecord> =
133-
certificates.into_iter().map(|cert| cert.into()).collect();
131+
let certificates = setup_certificate_chain(5, 2);
132+
let certificates_records: Vec<CertificateRecord> = certificates.into();
134133

135134
let connection = main_db_connection().unwrap();
136135

mithril-aggregator/src/database/record/certificate.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -390,16 +390,16 @@ mod tests {
390390

391391
#[test]
392392
fn test_convert_certificates() {
393-
let (certificates, _) = setup_certificate_chain(20, 3);
393+
let certificates = setup_certificate_chain(20, 3);
394394
let mut certificate_records: Vec<CertificateRecord> = Vec::new();
395-
for certificate in certificates.clone() {
395+
for certificate in certificates.certificates_chained.clone() {
396396
certificate_records.push(certificate.into());
397397
}
398398
let mut certificates_new: Vec<Certificate> = Vec::new();
399399
for certificate_record in certificate_records {
400400
certificates_new.push(certificate_record.into());
401401
}
402-
assert_eq!(certificates, certificates_new);
402+
assert_eq!(certificates.certificates_chained, certificates_new);
403403
}
404404

405405
#[test]

mithril-aggregator/src/database/repository/certificate_repository.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -245,10 +245,10 @@ mod tests {
245245

246246
#[tokio::test]
247247
async fn repository_get_certificate() {
248-
let (certificates, _) = setup_certificate_chain(5, 2);
248+
let certificates = setup_certificate_chain(5, 2);
249249
let expected_hash = certificates[0].hash.clone();
250250
let connection = Arc::new(main_db_connection().unwrap());
251-
insert_certificate_records(&connection, certificates.clone());
251+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
252252

253253
let repository: CertificateRepository = CertificateRepository::new(connection);
254254
let certificate = repository
@@ -268,29 +268,28 @@ mod tests {
268268

269269
#[tokio::test]
270270
async fn repository_get_latest_certificates() {
271-
let (certificates, _) = setup_certificate_chain(5, 2);
271+
let certificates = setup_certificate_chain(5, 2);
272272
let connection = Arc::new(main_db_connection().unwrap());
273-
insert_certificate_records(&connection, certificates.clone());
273+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
274274

275275
let repository = CertificateRepository::new(connection);
276276
let latest_certificates = repository
277277
.get_latest_certificates(certificates.len())
278278
.await
279279
.unwrap();
280-
let expected: Vec<Certificate> = certificates.into_iter().rev().collect();
281280

282-
assert_eq!(expected, latest_certificates);
281+
assert_eq!(certificates.reversed_chain(), latest_certificates);
283282
}
284283

285284
#[tokio::test]
286285
async fn repository_get_latest_genesis_certificate() {
287-
let (certificates, _) = setup_certificate_chain(5, 2);
286+
let certificates = setup_certificate_chain(5, 2);
288287
let connection = Arc::new(main_db_connection().unwrap());
289-
insert_certificate_records(&connection, certificates.clone());
288+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
290289

291290
let repository = CertificateRepository::new(connection);
292291
let latest_certificates = repository.get_latest_genesis_certificate().await.unwrap();
293-
let expected = Some(certificates.last().unwrap().clone());
292+
let expected = Some(certificates.genesis_certificate().clone());
294293

295294
assert_eq!(expected, latest_certificates);
296295
}
@@ -509,11 +508,11 @@ mod tests {
509508

510509
#[tokio::test]
511510
async fn get_master_certificate_for_epoch() {
512-
let (certificates, _) = setup_certificate_chain(3, 1);
511+
let certificates = setup_certificate_chain(3, 1);
513512
let expected_certificate_id = &certificates[2].hash;
514513
let epoch = &certificates[2].epoch;
515514
let connection = Arc::new(main_db_connection().unwrap());
516-
insert_certificate_records(&connection, certificates.clone());
515+
insert_certificate_records(&connection, certificates.certificates_chained.clone());
517516

518517
let repository: CertificateRepository = CertificateRepository::new(connection);
519518
let certificate = repository
@@ -527,7 +526,7 @@ mod tests {
527526

528527
#[tokio::test]
529528
async fn save_certificate() {
530-
let (certificates, _) = setup_certificate_chain(5, 3);
529+
let certificates = setup_certificate_chain(5, 3);
531530
let connection = Arc::new(main_db_connection().unwrap());
532531
let repository: CertificateRepository = CertificateRepository::new(connection.clone());
533532
let certificate = repository

mithril-client/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mithril-client"
3-
version = "0.12.17"
3+
version = "0.12.18"
44
description = "Mithril client library"
55
authors = { workspace = true }
66
edition = { workspace = true }

0 commit comments

Comments
 (0)