zerokms_protocol/
testing.rs1use fake::{
3 faker::lorem::en::{Word, Words},
4 Dummy, Fake, Faker,
5};
6use rand::{Fill, Rng};
7use std::borrow::Cow;
8use uuid::Uuid;
9
10use crate::{
11 CreateClientRequest, CreateDatasetRequest, Dataset, GenerateKeyRequest, GenerateKeySpec,
12 GrantDatasetRequest,
13};
14
15impl Dummy<&'static str> for CreateDatasetRequest<'_> {
17 fn dummy_with_rng<R: Rng + ?Sized>(name: &&'static str, _: &mut R) -> Self {
18 Self {
19 name: Cow::Borrowed(*name),
20 description: Cow::Owned("description".to_string()),
21 }
22 }
23}
24
25impl Dummy<Faker> for Dataset {
26 fn dummy_with_rng<R: Rng + ?Sized>(_: &Faker, _: &mut R) -> Self {
27 Self {
28 id: Uuid::new_v4(),
29 name: Word().fake(),
30 description: Words(3..10).fake::<Vec<String>>().join(" "),
31 }
32 }
33}
34
35impl Dummy<Faker> for CreateDatasetRequest<'_> {
37 fn dummy_with_rng<R: Rng + ?Sized>(_: &Faker, _: &mut R) -> Self {
38 let words: Vec<String> = Words(3..10).fake();
39
40 Self {
41 name: Cow::Owned(Word().fake()),
42 description: Cow::Owned(words.join(" ")),
43 }
44 }
45}
46
47impl Dummy<Dataset> for CreateClientRequest<'_> {
50 fn dummy_with_rng<R: Rng + ?Sized>(Dataset { id, .. }: &Dataset, _: &mut R) -> Self {
51 Self {
52 dataset_id: *id,
53 name: Cow::Owned(Word().fake()),
54 description: Cow::Owned(Word().fake()),
55 }
56 }
57}
58
59impl Dummy<(&Dataset, Uuid)> for GrantDatasetRequest {
61 fn dummy_with_rng<R: Rng + ?Sized>((dataset, client_id): &(&Dataset, Uuid), _: &mut R) -> Self {
62 Self {
63 dataset_id: dataset.id,
64 client_id: *client_id,
65 }
66 }
67}
68
69impl Dummy<(&Dataset, Uuid)> for GenerateKeyRequest<'_> {
70 fn dummy_with_rng<R: Rng + ?Sized>((dataset, client_id): &(&Dataset, Uuid), _: &mut R) -> Self {
71 Self {
72 dataset_id: Some(dataset.id),
73 client_id: *client_id,
74 keys: Cow::Owned(fake::vec![GenerateKeySpec; 4]),
75 }
76 }
77}
78
79impl Dummy<Faker> for GenerateKeySpec<'_> {
80 fn dummy_with_rng<R: Rng + ?Sized>(_: &Faker, rng: &mut R) -> Self {
81 let mut buf: [u8; 16] = Default::default();
82 buf.try_fill(rng).unwrap();
83
84 Self {
85 iv: buf,
86 descriptor: Cow::Owned(Word().fake()),
87 context: vec![],
88 }
89 }
90}