#![cfg(test)]
#[test]
fn test() {
use blockify::{data::Metadata, record::Record};
use serde::{Deserialize, Serialize};
#[derive(Clone, Serialize, Deserialize, Record)]
struct Vote {
session: i32,
choice: i32,
}
let keypair = blockify::generate_ed25519_key_pair();
let pub_key = keypair.clone().into_public_key();
let my_record = Vote {
session: 0,
choice: 2,
};
let my_record_hash = blockify::hash(&my_record);
let signature = my_record.sign(&keypair).unwrap();
assert!(my_record.verify(&signature, &pub_key).is_ok());
let signed_record = my_record.record(keypair, Metadata::empty()).unwrap();
assert_eq!(&signature, signed_record.signature());
assert_eq!(&pub_key, signed_record.signer());
assert_eq!(&my_record_hash, signed_record.hash());
assert!(signed_record.verify().is_ok());
}