public void UserCollectionCrud() { IUser user = new User(); user.Username = "******"; user.PublicKeyId = Guid.NewGuid(); user.ContainerIds = new List<Guid>(); for (int i = 0; i < 10; i++) { user.ContainerIds.Add(Guid.NewGuid()); } var newUser = _provider.UserCreate(user); Assert.NotNull(newUser, "User should not be null"); Assert.Equal(user.Username, newUser.Username, "Username mismatch"); Assert.Equal(user.PublicKeyId, newUser.PublicKeyId, "PublicKeyId mismatch"); Assert.Equal(user.ContainerIds.Count, newUser.ContainerIds.Count, "ContainerIds.Count mismatch"); for (int i = 0; i < user.ContainerIds.Count; i++) { Assert.Equal(user.ContainerIds[i], newUser.ContainerIds[i], "ContainerId mismatch"); } newUser.Username = "******"; newUser.PublicKeyId = Guid.NewGuid(); newUser.ContainerIds = new List<Guid>(); for (int i = 0; i < 20; i++) { newUser.ContainerIds.Add(Guid.NewGuid()); } Assert.True(_provider.UserUpdate(newUser), "User could not be updated"); user = newUser; newUser = _provider.UserRetrieve(user.Id); Assert.NotNull(newUser, "User should not be null"); Assert.Equal(user.Username, newUser.Username, "Username mismatch"); Assert.Equal(user.PublicKeyId, newUser.PublicKeyId, "PublicKeyId mismatch"); Assert.Equal(user.ContainerIds.Count, newUser.ContainerIds.Count, "ContainerIds.Count mismatch"); for (int i = 0; i < user.ContainerIds.Count; i++) { Assert.Equal(user.ContainerIds[i], newUser.ContainerIds[i], "ContainerId mismatch"); } Assert.True(_provider.UserDelete(newUser), "User could not be deleted"); var deletedUser = _provider.UserRetrieve(newUser.Id); Assert.Null(deletedUser); }
public void UserExistsTrigger() { IUser user = new User(); user.Username = DateTime.Now.Ticks.ToString(); user.PublicKeyId = Guid.NewGuid(); user.ContainerIds = new List<Guid>(); for (int i = 0; i < 10; i++) { user.ContainerIds.Add(Guid.NewGuid()); } var newUser = _provider.UserCreate(user); Assert.NotNull(newUser); var newUser2 = _provider.UserCreate(user); Assert.Fail("Should have seen exception"); }
public void FullUsageTest() { IUser user1 = new User(); user1.Username = "******"; var createdUser = _provider.UserCreate(user1); Assert.NotNull(createdUser); IUser user2 = new User(); user2.Username = "******"; var secondUser = _provider.UserCreate(user2); Assert.NotNull(secondUser); IContainer container = new Container(); container.Name = "TestContainer"; container.OwnerUserId = createdUser.Id; var createdContainer = _provider.ContainerCreate(container); Assert.NotNull(createdContainer); IBlob blob = new Blob(); blob.OwnerUserId = createdUser.Id; var createdBlob = _provider.BlobCreate(blob); Assert.NotNull(createdBlob); MemoryStream stream = new MemoryStream(); using (StreamWriter sw = new StreamWriter(stream)) { sw.Write("This is a test blob"); sw.Flush(); var blobUpdateSuccess = _provider.BlobUpdateStream(createdBlob, stream); Assert.True(blobUpdateSuccess); } createdContainer.BlobIds = new List<Guid>(); createdContainer.BlobIds.Add(createdBlob.Id); var updatedContainer = _provider.ContainerUpdate(createdContainer); Assert.True(updatedContainer); IBlob keyBlob = new Blob(); keyBlob.OwnerUserId = secondUser.Id; var createdKeyBlob = _provider.BlobCreate(keyBlob); Assert.NotNull(createdKeyBlob); MemoryStream keyStream = new MemoryStream(); using (StreamWriter sw = new StreamWriter(keyStream)) { sw.Write("Is this the key?!!!"); sw.Flush(); var blobUpdateSuccess = _provider.BlobUpdateStream(createdKeyBlob, keyStream); Assert.True(blobUpdateSuccess); } ITransfer transfer = new Transfer(); transfer.TargetBlobId = createdBlob.Id; transfer.KeyBlobId = createdKeyBlob.Id; transfer.TargetUserId = secondUser.Id; var createdTransfer = _provider.TransferCreate(transfer); Assert.NotNull(createdTransfer); IContainer secondUserContainer = new Container(); secondUserContainer.Name = "SecondUserContainer"; secondUserContainer.OwnerUserId = secondUser.Id; var secondUserCreatedContainer = _provider.ContainerCreate(secondUserContainer); Assert.NotNull(secondUserCreatedContainer); if (secondUserCreatedContainer.BlobIds == null) secondUserCreatedContainer.BlobIds = new List<Guid>(); var transfers = _provider.TransferRetrieveByList(t => t.TargetUserId == secondUser.Id && !t.Complete); Assert.NotNull(transfers); Assert.True(transfers.Any()); foreach (ITransfer trans in transfers) { if (!trans.KeyBlobId.Equals(Guid.Empty)) { IBlob transKeyBlob = _provider.BlobRetrieve(trans.KeyBlobId); Assert.NotNull(transKeyBlob); Stream transKeyStream = _provider.BlobRetrieveStream(transKeyBlob); Assert.NotNull(transKeyStream); //Add to keyring } secondUserCreatedContainer.BlobIds.Add(trans.TargetBlobId); trans.Complete = true; var updatedTrans = _provider.TransferUpdate(trans); Assert.True(updatedTrans); } var updatedSecondUserContainer = _provider.ContainerUpdate(secondUserCreatedContainer); Assert.True(updatedSecondUserContainer); }