Skip to content

Commit

Permalink
Use created vlob_id by env
Browse files Browse the repository at this point in the history
  • Loading branch information
TimeEngineer committed Nov 2, 2023
1 parent 1d43dd8 commit 899432a
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ use super::utils::certificates_ops_factory;

#[parsec_test(testbed = "minimal")]
async fn ok(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand All @@ -37,11 +37,11 @@ async fn ok(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn content_already_exists(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand Down Expand Up @@ -76,11 +76,11 @@ async fn content_already_exists(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn index_already_exists(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand All @@ -106,10 +106,10 @@ async fn index_already_exists(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn invalid_timestamp(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user_realm("alice").customize(|event| {
event.realm_id = vlob_id;
vlob_id = event.realm_id;
event.timestamp = DateTime::from_ymd_hms_us(1999, 1, 1, 0, 0, 0, 0).unwrap()
});
});
Expand Down Expand Up @@ -142,11 +142,11 @@ async fn invalid_timestamp(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn non_existing_author(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand All @@ -167,7 +167,7 @@ async fn non_existing_author(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn revoked(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user("bob")
Expand All @@ -176,7 +176,7 @@ async fn revoked(env: &TestbedEnv) {
builder
// we step over the checker
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id)
.customize(|event| vlob_id = event.realm_id)
.with_author("bob@dev1".try_into().unwrap());
});
let alice = env.local_device("alice@dev1");
Expand Down Expand Up @@ -218,12 +218,12 @@ async fn revoked(env: &TestbedEnv) {
#[case(UserProfile::Standard)]
#[case(UserProfile::Outsider)]
async fn not_admin(#[case] profile: UserProfile, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob").with_initial_profile(profile);
builder
.new_user_realm("bob")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand Down Expand Up @@ -256,11 +256,11 @@ async fn not_admin(#[case] profile: UserProfile, env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn authored_by_root(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand Down Expand Up @@ -297,12 +297,12 @@ async fn authored_by_root(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn not_signed_by_self(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder
.new_user_realm("bob")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand Down Expand Up @@ -350,11 +350,11 @@ async fn not_signed_by_self(env: &TestbedEnv) {
#[case(Some(RealmRole::Reader))]
#[case(None)]
async fn not_signed_by_owner(#[case] role: Option<RealmRole>, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let ops = certificates_ops_factory(&env, &alice).await;
Expand Down Expand Up @@ -388,12 +388,12 @@ async fn not_signed_by_owner(#[case] role: Option<RealmRole>, env: &TestbedEnv)

#[parsec_test(testbed = "minimal")]
async fn share_with_no_role(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id)
.customize(|event| vlob_id = event.realm_id)
.then_share_with("bob", None);
});
let alice = env.local_device("alice@dev1");
Expand Down Expand Up @@ -430,13 +430,13 @@ async fn share_with_no_role(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn same_realm_id(env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user("mallory");
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
builder
.new_user_realm("bob")
.customize(|event| event.realm_id = vlob_id);
Expand Down Expand Up @@ -485,14 +485,14 @@ async fn same_realm_id(env: &TestbedEnv) {
#[case(RealmRole::Contributor)]
#[case(RealmRole::Reader)]
async fn share_realm_with_outsider(#[case] role: RealmRole, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder
.new_user("bob")
.with_initial_profile(UserProfile::Outsider);
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id)
.customize(|event| vlob_id = event.realm_id)
.then_share_with("bob", Some(role));
});
let alice = env.local_device("alice@dev1");
Expand Down Expand Up @@ -537,14 +537,14 @@ async fn share_realm_with_outsider(#[case] role: RealmRole, env: &TestbedEnv) {
#[case(RealmRole::Contributor)]
#[case(RealmRole::Reader)]
async fn owner_giving_role(#[case] role: RealmRole, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user("mallory");
builder
.new_user_realm("alice")
.customize(|event| {
event.realm_id = vlob_id;
vlob_id = event.realm_id;
})
.then_share_with("bob", Some(role));
});
Expand Down Expand Up @@ -583,13 +583,13 @@ async fn owner_giving_role(#[case] role: RealmRole, env: &TestbedEnv) {
#[case(RealmRole::Contributor)]
#[case(RealmRole::Reader)]
async fn manager_giving_role(#[case] role: RealmRole, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user("mallory");
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
builder.share_realm(vlob_id, "bob", Some(RealmRole::Manager));
builder
.share_realm(vlob_id, "mallory", Some(role))
Expand Down Expand Up @@ -636,13 +636,13 @@ async fn manager_giving_role(#[case] role: RealmRole, env: &TestbedEnv) {
#[case(RealmRole::Owner)]
#[case(RealmRole::Manager)]
async fn manager_trying_to_give_admin_role(#[case] role: RealmRole, env: &TestbedEnv) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user("mallory");
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
builder.share_realm(vlob_id, "bob", Some(RealmRole::Manager));
builder
.share_realm(vlob_id, "mallory", Some(role))
Expand Down Expand Up @@ -700,13 +700,13 @@ async fn member_trying_to_give_role(
#[case] claimer_role: RealmRole,
env: &TestbedEnv,
) {
let vlob_id = VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap();
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user("mallory");
builder
.new_user_realm("alice")
.customize(|event| event.realm_id = vlob_id);
.customize(|event| vlob_id = event.realm_id);
builder.share_realm(vlob_id, "bob", Some(greeter_role));
builder
.share_realm(vlob_id, "mallory", Some(claimer_role))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,9 +206,12 @@ async fn same_profile(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn owner_of_realm_not_shared_to_outsider_is_ok(env: &TestbedEnv) {
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder.new_user_realm("bob");
builder
.new_user_realm("bob")
.customize(|event| vlob_id = event.realm_id);
builder.update_user_profile("bob", UserProfile::Outsider);
});
let alice = env.local_device("alice@dev1");
Expand All @@ -219,10 +222,7 @@ async fn owner_of_realm_not_shared_to_outsider_is_ok(env: &TestbedEnv) {
let (_, alice_dev1_signed) = env.get_device_certificate("alice@dev1");
let (_, bob_signed) = env.get_user_certificate("bob");
let (_, bob_dev1_signed) = env.get_device_certificate("bob@dev1");
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate(
"bob",
VlobID::from_hex("f0000000-0000-0000-0000-000000000002").unwrap(),
);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate("bob", vlob_id);
let (_, bob_user_update_signed) = env.get_last_user_update_certificate("bob");

let switch = ops
Expand All @@ -247,10 +247,12 @@ async fn owner_of_realm_not_shared_to_outsider_is_ok(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn owner_of_realm_shared_to_outsider_error(env: &TestbedEnv) {
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder
.new_user_realm("bob")
.customize(|event| vlob_id = event.realm_id)
.then_share_with("alice", Some(RealmRole::Contributor));
builder.update_user_profile("bob", UserProfile::Outsider);
});
Expand All @@ -262,14 +264,8 @@ async fn owner_of_realm_shared_to_outsider_error(env: &TestbedEnv) {
let (_, alice_dev1_signed) = env.get_device_certificate("alice@dev1");
let (_, bob_signed) = env.get_user_certificate("bob");
let (_, bob_dev1_signed) = env.get_device_certificate("bob@dev1");
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate(
"bob",
VlobID::from_hex("f0000000-0000-0000-0000-000000000002").unwrap(),
);
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate(
"alice",
VlobID::from_hex("f0000000-0000-0000-0000-000000000002").unwrap(),
);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate("bob", vlob_id);
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate("alice", vlob_id);
let (_, bob_user_update_signed) = env.get_last_user_update_certificate("bob");

let err = ops
Expand Down Expand Up @@ -300,10 +296,12 @@ async fn owner_of_realm_shared_to_outsider_error(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn manager_of_realm_to_outsider_error(env: &TestbedEnv) {
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder
.new_user_realm("alice")
.customize(|event| vlob_id = event.realm_id)
.then_share_with("bob", Some(RealmRole::Manager));
builder.update_user_profile("bob", UserProfile::Outsider);
});
Expand All @@ -314,14 +312,8 @@ async fn manager_of_realm_to_outsider_error(env: &TestbedEnv) {
let (_, alice_signed) = env.get_user_certificate("alice");
let (_, alice_dev1_signed) = env.get_device_certificate("alice@dev1");
let (_, bob_signed) = env.get_user_certificate("bob");
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate(
"alice",
VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap(),
);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate(
"bob",
VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap(),
);
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate("alice", vlob_id);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate("bob", vlob_id);
let (_, bob_user_update_signed) = env.get_last_user_update_certificate("bob");

let err = ops
Expand Down Expand Up @@ -353,10 +345,12 @@ async fn manager_of_realm_to_outsider_error(env: &TestbedEnv) {
#[case(RealmRole::Contributor)]
#[case(RealmRole::Reader)]
async fn contributor_of_realm_to_outsider_is_ok(#[case] role: RealmRole, env: &TestbedEnv) {
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user("bob");
builder
.new_user_realm("alice")
.customize(|event| vlob_id = event.realm_id)
.then_share_with("bob", Some(role));
builder.update_user_profile("bob", UserProfile::Outsider);
});
Expand All @@ -367,14 +361,8 @@ async fn contributor_of_realm_to_outsider_is_ok(#[case] role: RealmRole, env: &T
let (_, alice_signed) = env.get_user_certificate("alice");
let (_, alice_dev1_signed) = env.get_device_certificate("alice@dev1");
let (_, bob_signed) = env.get_user_certificate("bob");
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate(
"alice",
VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap(),
);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate(
"bob",
VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap(),
);
let (_, alice_realm_role_signed) = env.get_last_realm_role_certificate("alice", vlob_id);
let (_, bob_realm_role_signed) = env.get_last_realm_role_certificate("bob", vlob_id);
let (_, bob_user_update_signed) = env.get_last_user_update_certificate("bob");

let switch = ops
Expand Down
11 changes: 6 additions & 5 deletions libparsec/crates/client/tests/unit/certificates_ops/store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,17 +115,18 @@ async fn add_revoked_user_certificate(env: &TestbedEnv) {

#[parsec_test(testbed = "minimal")]
async fn add_realm_role_certificate(env: &TestbedEnv) {
let mut vlob_id = VlobID::default();
let env = env.customize(|builder| {
builder.new_user_realm("alice");
builder
.new_user_realm("alice")
.customize(|event| vlob_id = event.realm_id);
});
let alice = env.local_device("alice@dev1");
let store = certificates_store_factory(&env, &alice).await;

let write = store.for_write().await;
let (alice_realm_role_certif, alice_realm_role_signed) = env.get_last_realm_role_certificate(
"alice",
VlobID::from_hex("f0000000-0000-0000-0000-000000000001").unwrap(),
);
let (alice_realm_role_certif, alice_realm_role_signed) =
env.get_last_realm_role_certificate("alice", vlob_id);
let alice_realm_role_certif = AnyArcCertificate::RealmRole(alice_realm_role_certif);

// Check that certificate is absent
Expand Down

0 comments on commit 899432a

Please sign in to comment.