public void TestReadObjectInBucket() { CountDownLatch cd = new CountDownLatch(1); KiiUser user = KiiUser.CurrentUser; KiiBucket bucket = user.Bucket("aclTest"); KiiBucketAcl acl = bucket.Acl(BucketAction.READ_OBJECTS_IN_BUCKET); KiiACLEntry <KiiBucket, BucketAction> entry = acl.Subject(KiiAnyAuthenticatedUser.Get()); entry.Save(ACLOperation.GRANT, (KiiACLEntry <KiiBucket, BucketAction> savedEntry, Exception e) => { Assert.IsNull(e); Assert.AreEqual(BucketAction.READ_OBJECTS_IN_BUCKET, savedEntry.Action); bucket.ListAclEntries((IList <KiiACLEntry <KiiBucket, BucketAction> > list, Exception e2) => { Assert.IsNull(e2); CheckEntriesAfterAdd(user, list); // Remove ACL Entry entry.Save(ACLOperation.REVOKE, (KiiACLEntry <KiiBucket, BucketAction> savedEntry2, Exception e3) => { Assert.IsNull(e3); Assert.AreEqual(BucketAction.READ_OBJECTS_IN_BUCKET, savedEntry2.Action); bucket.ListAclEntries((IList <KiiACLEntry <KiiBucket, BucketAction> > list2, Exception e4) => { Assert.IsNull(e4); CheckEntriesAfterRemove(user, list2); cd.Signal(); }); }); }); }); if (!cd.Wait(new TimeSpan(0, 0, 0, 10))) { Assert.Fail("Callback not fired."); } }
public void KiiBucketAclTest() { KiiBucket appBukcetA = Kii.Bucket("AA"); KiiBucket appBukcetA_ = Kii.Bucket("AA"); KiiBucket appBukcetB = Kii.Bucket("BB"); KiiBucket usrBucketA = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234")).Bucket("AA"); KiiBucketAcl acl1 = null; KiiBucketAcl acl2 = null; // same app bucket acl1 = new KiiBucketAcl(appBukcetA); acl2 = new KiiBucketAcl(appBukcetA_); Assert.IsTrue(acl1.Equals(acl2)); Assert.IsTrue(acl1.GetHashCode() == acl2.GetHashCode()); Assert.IsFalse(acl1 == acl2); // same app bucket and same action acl1 = new KiiBucketAcl(appBukcetA, BucketAction.QUERY_OBJECTS_IN_BUCKET); acl2 = new KiiBucketAcl(appBukcetA_, BucketAction.QUERY_OBJECTS_IN_BUCKET); Assert.IsTrue(acl1.Equals(acl2)); Assert.IsTrue(acl1.GetHashCode() == acl2.GetHashCode()); Assert.IsFalse(acl1 == acl2); // different action acl1 = new KiiBucketAcl(appBukcetA, BucketAction.DROP_BUCKET_WITH_ALL_CONTENT); acl2 = new KiiBucketAcl(appBukcetA_, BucketAction.QUERY_OBJECTS_IN_BUCKET); Assert.IsFalse(acl1.Equals(acl2)); Assert.IsFalse(acl1.GetHashCode() == acl2.GetHashCode()); Assert.IsFalse(acl1 == acl2); // different bucket name acl1 = new KiiBucketAcl(appBukcetA, BucketAction.QUERY_OBJECTS_IN_BUCKET); acl2 = new KiiBucketAcl(appBukcetB, BucketAction.QUERY_OBJECTS_IN_BUCKET); Assert.IsFalse(acl1.Equals(acl2)); Assert.IsFalse(acl1.GetHashCode() == acl2.GetHashCode()); Assert.IsFalse(acl1 == acl2); // different scope of bucket acl1 = new KiiBucketAcl(appBukcetA, BucketAction.QUERY_OBJECTS_IN_BUCKET); acl2 = new KiiBucketAcl(usrBucketA, BucketAction.QUERY_OBJECTS_IN_BUCKET); Assert.IsFalse(acl1.Equals(acl2)); Assert.IsFalse(acl1.GetHashCode() == acl2.GetHashCode()); Assert.IsFalse(acl1 == acl2); }
public void KiiBucketAclTest() { KiiBucketAcl acl1 = new KiiBucketAcl(Kii.Bucket("AA"), BucketAction.CREATE_OBJECTS_IN_BUCKET); KiiBucketAcl acl2 = new KiiBucketAcl(Kii.Bucket("AA"), BucketAction.CREATE_OBJECTS_IN_BUCKET); KiiUser userA = KiiUser.CreateByUri(new Uri("kiicloud://users/userA")); KiiUser userA_ = KiiUser.CreateByUri(new Uri("kiicloud://users/userA")); KiiUser userB = KiiUser.CreateByUri(new Uri("kiicloud://users/userB")); KiiUser userC = KiiUser.CreateByUri(new Uri("kiicloud://users/C")); KiiGroup groupA = KiiGroup.CreateByUri(new Uri("kiicloud://groups/groupA")); KiiGroup groupA_ = KiiGroup.CreateByUri(new Uri("kiicloud://groups/groupA")); KiiGroup groupB = KiiGroup.CreateByUri(new Uri("kiicloud://groups/groupB")); KiiGroup groupC = KiiGroup.CreateByUri(new Uri("kiicloud://groups/C")); KiiACLEntry <KiiBucket, BucketAction> aclEntry1 = null; KiiACLEntry <KiiBucket, BucketAction> aclEntry2 = null; // same user aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, userA); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, userA_); Assert.IsTrue(aclEntry1.Equals(aclEntry2)); Assert.IsTrue(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // same user aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, KiiAnonymousUser.Get()); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, KiiAnonymousUser.Get()); Assert.IsTrue(aclEntry1.Equals(aclEntry2)); Assert.IsTrue(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // different user aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, userA); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, userB); Assert.IsFalse(aclEntry1.Equals(aclEntry2)); Assert.IsFalse(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // different user aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, KiiAnonymousUser.Get()); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, KiiAnyAuthenticatedUser.Get()); Assert.IsFalse(aclEntry1.Equals(aclEntry2)); Assert.IsFalse(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // same group aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, groupA); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, groupA_); Assert.IsTrue(aclEntry1.Equals(aclEntry2)); Assert.IsTrue(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // different group aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, groupA); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, groupB); Assert.IsFalse(aclEntry1.Equals(aclEntry2)); Assert.IsFalse(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); // different subject kind aclEntry1 = new KiiACLEntry <KiiBucket, BucketAction>(acl1, userC); aclEntry2 = new KiiACLEntry <KiiBucket, BucketAction>(acl2, groupC); Assert.IsFalse(aclEntry1.Equals(aclEntry2)); Assert.IsFalse(aclEntry1.GetHashCode() == aclEntry2.GetHashCode()); Assert.IsFalse(aclEntry1 == aclEntry2); }