openmls/test_utils/single_group_test_framework/
assertions.rs1use super::*;
2
3impl<Provider: OpenMlsProvider> MemberState<'_, Provider> {
4 #[openmls_traits::maybe_async]
5 pub async fn assert_group_storage_state_matches(&self, to_compare: GroupStorageState) {
6 let state_now = self.group_storage_state().await;
7 assert!(to_compare == state_now);
8 }
9 #[openmls_traits::maybe_async]
10 pub async fn assert_non_proposal_group_storage_state_matches(
11 &self,
12 to_compare: GroupStorageState,
13 ) {
14 let state_now = self.group_storage_state().await;
15 assert!(to_compare.non_proposal_state() == state_now.non_proposal_state());
16 }
17}
18impl<Provider: OpenMlsProvider> GroupState<'_, Provider> {
19 pub fn assert_membership(&self) {
20 let mut names = self
21 .members
22 .keys()
23 .map(|s| s.to_string())
24 .collect::<Vec<_>>();
25 names.sort();
26
27 for state in self.members.values() {
28 let mut names_in_group = state
29 .group
30 .members()
31 .map(|member| {
32 let credential: BasicCredential = member.credential.try_into().unwrap();
33
34 String::from_utf8(credential.identity().to_owned()).unwrap()
35 })
36 .collect::<Vec<_>>();
37
38 names_in_group.sort();
39
40 assert_eq!(names, names_in_group);
41 }
42 }
43}