use crate::{
binary_tree::LeafNodeIndex, group::past_secrets::MessageSecretsStore,
schedule::message_secrets::MessageSecrets,
};
#[openmls_test::openmls_test]
fn test_secret_tree_store() {
let provider = &Provider::default();
let mut message_secrets_store = MessageSecretsStore::new_with_secret(
3,
MessageSecrets::random(ciphersuite, provider.rand(), LeafNodeIndex::new(0)),
);
message_secrets_store.add(
0,
MessageSecrets::random(ciphersuite, provider.rand(), LeafNodeIndex::new(0)),
Vec::new(),
);
assert!(message_secrets_store.secrets_for_epoch_mut(0).is_some());
for i in 1..6u64 {
message_secrets_store.add(
i,
MessageSecrets::random(ciphersuite, provider.rand(), LeafNodeIndex::new(0)),
Vec::new(),
);
}
assert!(message_secrets_store.secrets_for_epoch_mut(3).is_some());
assert!(message_secrets_store.secrets_for_epoch_mut(4).is_some());
assert!(message_secrets_store.secrets_for_epoch_mut(5).is_some());
assert!(message_secrets_store.secrets_for_epoch_mut(0).is_none());
assert!(message_secrets_store.secrets_for_epoch_mut(1).is_none());
assert!(message_secrets_store.secrets_for_epoch_mut(2).is_none());
assert!(message_secrets_store.secrets_for_epoch_mut(6).is_none());
}
#[openmls_test::openmls_test]
fn test_empty_secret_tree_store() {
let provider = &Provider::default();
let mut message_secrets_store = MessageSecretsStore::new_with_secret(
0,
MessageSecrets::random(ciphersuite, provider.rand(), LeafNodeIndex::new(0)),
);
message_secrets_store.add(
0,
MessageSecrets::random(ciphersuite, provider.rand(), LeafNodeIndex::new(0)),
Vec::new(),
);
assert!(message_secrets_store.secrets_for_epoch_mut(0).is_none());
}