Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

413 changes: 399 additions & 14 deletions sdk/storage/Azure.Storage.Files.Shares/src/ShareClient.cs

Large diffs are not rendered by default.

394 changes: 386 additions & 8 deletions sdk/storage/Azure.Storage.Files.Shares/src/ShareDirectoryClient.cs

Large diffs are not rendered by default.

478 changes: 472 additions & 6 deletions sdk/storage/Azure.Storage.Files.Shares/src/ShareFileClient.cs

Large diffs are not rendered by default.

147 changes: 147 additions & 0 deletions sdk/storage/Azure.Storage.Files.Shares/tests/DirectoryClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,153 @@ public async Task CreateAsync_Metadata()
AssertMetadataEquality(metadata, response.Value.Metadata);
}

[Test]
public async Task CreateIfNotExists_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));

// Act
Response<ShareDirectoryInfo> response = await directory.CreateIfNotExistsAsync();

// Assert
Assert.IsNotNull(response);
}

[Test]
public async Task CreateIfNotExists_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));
await directory.CreateAsync();

// Act
Response<ShareDirectoryInfo> response = await directory.CreateIfNotExistsAsync();

// Assert
Assert.IsNull(response);
}

[Test]
public async Task CreateIfNotExists_Error()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));
ShareDirectoryClient unauthorizedDirectory = InstrumentClient(new ShareDirectoryClient(directory.Uri, GetOptions()));

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
unauthorizedDirectory.CreateIfNotExistsAsync(),
e => Assert.AreEqual("ResourceNotFound", e.ErrorCode));
}

[Test]
public async Task Exists_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));

// Act
Response<bool> response = await directory.ExistsAsync();

// Assert
Assert.IsFalse(response.Value);
}

[Test]
public async Task Exists_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));
await directory.CreateAsync();

// Act
Response<bool> response = await directory.ExistsAsync();

// Assert
Assert.IsTrue(response.Value);
}

[Test]
public async Task Exists_Error()
{
// Arrange
var shareName = GetNewShareName();
ShareServiceClient service = GetServiceClient_SharedKey();
ShareClient share = InstrumentClient(service.GetShareClient(shareName));
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(GetNewDirectoryName()));

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
directory.ExistsAsync(),
e => Assert.AreEqual("ShareNotFound", e.ErrorCode));
}

[Test]
public async Task DeleteIfExists_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));
await directory.CreateAsync();

// Act
Response<bool> response = await directory.DeleteIfExistsAsync();

// Assert
Assert.IsTrue(response.Value);
}

[Test]
public async Task DeleteIfExists_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));

// Act
Response<bool> response = await directory.DeleteIfExistsAsync();

// Assert
Assert.IsFalse(response.Value);
}

[Test]
public async Task DeleteIfExists_Error()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
string name = GetNewDirectoryName();
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(name));
await directory.CreateAsync();
await directory.CreateFileAsync(GetNewFileName(), Constants.KB);

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
directory.DeleteIfExistsAsync(),
e => Assert.AreEqual("DirectoryNotEmpty", e.ErrorCode));
}

[Test]
public async Task DeleteAsync()
{
Expand Down
139 changes: 139 additions & 0 deletions sdk/storage/Azure.Storage.Files.Shares/tests/FileClientTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,145 @@ await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
e => Assert.AreEqual("ParentNotFound", e.ErrorCode));
}

[Test]
public async Task CreateIfNotExistsAsync_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));
await file.CreateAsync(Constants.KB);

// Act
Response<ShareFileInfo> response = await file.CreateIfNotExistsAsync(Constants.KB);

// Assert
Assert.IsNull(response);
}

[Test]
public async Task CreateIfNotExistsAsync_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));

// Act
Response<ShareFileInfo> response = await file.CreateIfNotExistsAsync(Constants.KB);

// Assert
Assert.IsNotNull(response);
}

[Test]
public async Task CreateIfNotExistsAsync_Error()
{
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;

// Arrange
ShareDirectoryClient directory = InstrumentClient(share.GetDirectoryClient(GetNewDirectoryName()));
ShareFileClient file = InstrumentClient(directory.GetFileClient(GetNewFileName()));

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
file.CreateIfNotExistsAsync(maxSize: Constants.KB),
e => Assert.AreEqual("ParentNotFound", e.ErrorCode));
}

[Test]
public async Task ExistsAsync_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));
await file.CreateAsync(Constants.KB);

// Act
Response<bool> response = await file.ExistsAsync();

// Assert
Assert.IsTrue(response.Value);
}

[Test]
public async Task ExistsAsync_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));

// Act
Response<bool> response = await file.ExistsAsync();

// Assert
Assert.IsFalse(response.Value);
}

[Test]
public async Task ExistsAsync_Error()
{
// Arrange
var shareName = GetNewShareName();
ShareServiceClient service = GetServiceClient_SharedKey();
ShareClient share = InstrumentClient(service.GetShareClient(shareName));
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
file.ExistsAsync(),
e => Assert.AreEqual("ShareNotFound", e.ErrorCode));
}

[Test]
public async Task DeleteIfExistsAsync_Exists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));
await file.CreateAsync(Constants.KB);

// Act
Response<bool> response = await file.DeleteIfExistsAsync();

// Assert
Assert.IsTrue(response.Value);
}

[Test]
public async Task DeleteIfExistsAsync_NotExists()
{
// Arrange
await using DisposingShare test = await GetTestShareAsync();
ShareClient share = test.Share;
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));

// Act
Response<bool> response = await file.DeleteIfExistsAsync();

// Assert
Assert.IsFalse(response.Value);
}

[Test]
public async Task DeleteIfExistsAsync_Error()
{
// Arrange
var shareName = GetNewShareName();
ShareServiceClient service = GetServiceClient_SharedKey();
ShareClient share = InstrumentClient(service.GetShareClient(shareName));
ShareFileClient file = InstrumentClient(share.GetRootDirectoryClient().GetFileClient(GetNewFileName()));

// Act
await TestHelper.AssertExpectedExceptionAsync<RequestFailedException>(
file.DeleteIfExistsAsync(),
e => Assert.AreEqual("ShareNotFound", e.ErrorCode));
}

[Test]
public async Task SetMetadataAsync()
{
Expand Down
Loading