Skip to content
This repository was archived by the owner on Aug 4, 2022. It is now read-only.

Commit e7f44e3

Browse files
committed
address PR comments
1 parent 272feaa commit e7f44e3

10 files changed

+99
-57
lines changed

lang/cs/Org.Apache.REEF.IO.Tests/TestAzureBlockBlobFileSystemE2E.cs

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,26 +69,22 @@ public void Dispose()
6969

7070
private bool CheckBlobExists(ICloudBlob blob)
7171
{
72-
var task = blob.ExistsAsync();
73-
return task.Result;
72+
return blob.ExistsAsync().GetAwaiter().GetResult();
7473
}
7574

7675
private bool CheckContainerExists(CloudBlobContainer container)
7776
{
78-
var task = container.ExistsAsync();
79-
return task.Result;
77+
return container.ExistsAsync().GetAwaiter().GetResult();
8078
}
8179

8280
private ICloudBlob GetBlobReferenceFromServer(CloudBlobContainer container, string blobName)
8381
{
84-
var task = container.GetBlobReferenceFromServerAsync(blobName);
85-
return task.Result;
82+
return container.GetBlobReferenceFromServerAsync(blobName).GetAwaiter().GetResult();
8683
}
8784

8885
private string DownloadText(CloudBlockBlob blob)
8986
{
90-
var task = blob.DownloadTextAsync();
91-
return task.Result;
87+
return blob.DownloadTextAsync().GetAwaiter().GetResult();
9288
}
9389

9490
[Fact(Skip = SkipMessage)]
@@ -268,18 +264,34 @@ public void TestCopyFromLocalE2E()
268264
}
269265

270266
[Fact(Skip = SkipMessage)]
271-
public void TestIsDirectory()
267+
public void TestIsDirectoryValidDirectoryLevel1E2E()
272268
{
273-
const string Directory1 = "dir1";
274-
const string Directory2 = "dir1/dir2";
275-
const string Directory3 = "dir3";
276-
var blockBlobs1 = CreateTempBlobs(Directory1);
277-
CreateTempBlobs(Directory2);
269+
const string Directory = "dir";
270+
CreateTempBlobs(Directory);
271+
Assert.True(_fileSystem.IsDirectory(PathToFile(Directory)));
272+
}
278273

279-
Assert.True(_fileSystem.IsDirectory(PathToFile(Directory1)));
280-
Assert.True(_fileSystem.IsDirectory(PathToFile(Directory2)));
281-
Assert.False(_fileSystem.IsDirectory(PathToFile(Directory3)));
282-
Assert.False(_fileSystem.IsDirectory(blockBlobs1.First().Uri));
274+
[Fact(Skip = SkipMessage)]
275+
public void TestIsDirectoryValidDirectoryLevel2E2E()
276+
{
277+
const string Directory = "dir1/dir2";
278+
CreateTempBlobs(Directory);
279+
Assert.True(_fileSystem.IsDirectory(PathToFile(Directory)));
280+
}
281+
282+
[Fact(Skip = SkipMessage)]
283+
public void TestIsDirectoryFakeDirectoryE2E()
284+
{
285+
const string Directory = "dir";
286+
Assert.False(_fileSystem.IsDirectory(PathToFile(Directory)));
287+
}
288+
289+
[Fact(Skip = SkipMessage)]
290+
public void TestIsDirectoryFileE2E()
291+
{
292+
const string Directory = "dir";
293+
var blockBlobs = CreateTempBlobs(Directory);
294+
Assert.False(_fileSystem.IsDirectory(blockBlobs.First().Uri));
283295
}
284296

285297
[Fact(Skip = SkipMessage)]
@@ -328,18 +340,16 @@ public void TestDeleteDirectorySecondLevelE2E()
328340
Assert.True(CheckContainerExists(_container));
329341
}
330342

331-
private List<CloudBlockBlob> CreateTempBlobs(string directory, int fileCount = 3)
343+
private IEnumerable<CloudBlockBlob> CreateTempBlobs(string directory, int fileCount = 3)
332344
{
333-
var blockBlobs = new List<CloudBlockBlob>();
334-
for (var i = 0; i < fileCount; i++)
345+
return Enumerable.Range(0, fileCount).Select(i =>
335346
{
336347
var filePath = directory + '/' + i;
337348
var blockBlob = _container.GetBlockBlobReference(filePath);
338349
UploadFromString(blockBlob, "hello");
339-
Assert.True(CheckBlobExists(blockBlob));
340-
blockBlobs.Add(blockBlob);
341-
}
342-
return blockBlobs;
350+
Assert.True(CheckBlobExists(blockBlob), "Blob does not exist: " + filePath);
351+
return blockBlob;
352+
});
343353
}
344354

345355
private static void UploadFromString(ICloudBlob blob, string str)

lang/cs/Org.Apache.REEF.IO.Tests/TestAzureDataLakeFileSystemE2E.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,24 @@ public void TestCreateDirectoryE2E()
195195
}
196196

197197
[Fact(Skip = SkipMessage)]
198-
public void TestIsDirectoryE2E()
198+
public void TestIsDirectoryValidDirectoryE2E()
199199
{
200200
string dirName = $"/{_defaultFolderName}";
201-
string fakeDirName = $"/fakeDir";
202-
203201
_adlsClient.CreateDirectory(dirName);
204-
string fileName = UploadFromString(ContentsText);
202+
Assert.True(_fileSystem.IsDirectory(PathToFile(dirName)));
203+
}
205204

206-
Assert.True(_fileSystem.IsDirectory(PathToFile(dirName)));
205+
[Fact(Skip = SkipMessage)]
206+
public void TestIsDirectoryFakeDirectoryE2E()
207+
{
208+
string fakeDirName = $"/fakeDir";
207209
Assert.False(_fileSystem.IsDirectory(PathToFile(fakeDirName)));
210+
}
211+
212+
[Fact(Skip = SkipMessage)]
213+
public void TestIsDirectoryFileE2E()
214+
{
215+
string fileName = UploadFromString(ContentsText);
208216
Assert.False(_fileSystem.IsDirectory(PathToFile(fileName)));
209217
}
210218

lang/cs/Org.Apache.REEF.IO.Tests/TestHadoopFileSystem.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,29 +165,47 @@ public void CreateUriForPathWithPrefix()
165165
}
166166

167167
/// <summary>
168-
/// Tests whether .IsDirectory() works.
168+
/// Tests whether .IsDirectory() works for valid directory.
169169
/// </summary>
170170
[Fact(Skip = SkipMessage)]
171-
public void TestIsDirectory()
171+
public void TestIsDirectoryValidDirectory()
172172
{
173173
// Create directory
174174
var remoteDirUri = GetTempUri();
175175
_fileSystem.CreateDirectory(remoteDirUri);
176176

177+
Assert.True(_fileSystem.IsDirectory(remoteDirUri));
178+
179+
// Clean up
180+
_fileSystem.DeleteDirectory(remoteDirUri);
181+
}
182+
183+
/// <summary>
184+
/// Tests whether .IsDirectory() works for fake directory.
185+
/// </summary>
186+
[Fact(Skip = SkipMessage)]
187+
public void TestIsDirectoryFakeDirectory()
188+
{
177189
// Create fake directory uri
178190
var remoteFakeuri = GetTempUri();
179191

192+
Assert.False(_fileSystem.IsDirectory(remoteFakeuri));
193+
}
194+
195+
/// <summary>
196+
/// Tests whether .IsDirectory() works for file.
197+
/// </summary>
198+
[Fact(Skip = SkipMessage)]
199+
public void TestIsDirectoryFile()
200+
{
180201
// Create file
181202
var remoteFileUri = GetTempUri();
182203
var localFile = FileSystemTestUtilities.MakeLocalTempFile();
183204
_fileSystem.CopyFromLocal(localFile, remoteFileUri);
184205

185-
Assert.True(_fileSystem.IsDirectory(remoteDirUri));
186-
Assert.False(_fileSystem.IsDirectory(remoteFakeuri));
187206
Assert.False(_fileSystem.IsDirectory(remoteFileUri));
188207

189208
// Clean up
190-
_fileSystem.DeleteDirectory(remoteDirUri);
191209
_fileSystem.Delete(remoteFileUri);
192210
File.Delete(localFile);
193211
}

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/AzureBlockBlobFileSystem.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,15 @@ public void CreateDirectory(Uri directoryUri)
133133
public bool IsDirectory(Uri uri)
134134
{
135135
var path = uri.AbsolutePath.TrimStart('/');
136-
const int maxBlobResults = 1;
137-
var blobItems = _client.ListBlobsSegmented(path, false, BlobListingDetails.Metadata, maxBlobResults, null, null, null).Results;
138-
return blobItems.Any() && blobItems.First() is CloudBlobDirectory;
136+
var blobItems = _client.ListBlobsSegmented(
137+
path,
138+
useFlatListing: false,
139+
BlobListingDetails.Metadata,
140+
maxResults: 1,
141+
continuationToken: null,
142+
blobRequestOptions: null,
143+
operationContext: null).Results;
144+
return blobItems.OfType<CloudBlobDirectory>().Any();
139145
}
140146

141147
/// <summary>

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/AzureCloudBlobClient.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ public Uri BaseUri
5555

5656
public ICloudBlob GetBlobReferenceFromServer(Uri blobUri)
5757
{
58-
var task = _client.GetBlobReferenceFromServerAsync(blobUri);
59-
return task.Result;
58+
return _client.GetBlobReferenceFromServerAsync(blobUri).GetAwaiter().GetResult();
6059
}
6160

6261
public ICloudBlobContainer GetContainerReference(string containerName)
@@ -78,15 +77,14 @@ public BlobResultSegment ListBlobsSegmented(
7877
BlobRequestOptions blobRequestOptions,
7978
OperationContext operationContext)
8079
{
81-
var task = _client.ListBlobsSegmentedAsync(
80+
return _client.ListBlobsSegmentedAsync(
8281
prefix,
8382
useFlatListing,
8483
blobListingDetails,
8584
maxResults,
8685
continuationToken,
8786
blobRequestOptions,
88-
operationContext);
89-
return task.Result;
87+
operationContext).GetAwaiter().GetResult();
9088
}
9189

9290
public BlobResultSegment ListDirectoryBlobsSegmented(

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/AzureCloudBlobContainer.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ public AzureCloudBlobContainer(CloudBlobContainer container, BlobRequestOptions
3535

3636
public bool CreateIfNotExists()
3737
{
38-
var task = _container.CreateIfNotExistsAsync(_requestOptions, null);
39-
return task.Result;
38+
return _container.CreateIfNotExistsAsync(_requestOptions, null).GetAwaiter().GetResult();
4039
}
4140

4241
public void DeleteIfExists()

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/AzureCloudBlobDirectory.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,13 @@ public ICloudBlobDirectory GetDirectoryReference(string directoryName)
3939

4040
public IEnumerable<IListBlobItem> ListBlobs(bool useFlatListing = false)
4141
{
42-
var task = _directory.ListBlobsSegmentedAsync(useFlatListing, BlobListingDetails.All, null, null, null, null);
43-
return task.Result.Results;
42+
return _directory.ListBlobsSegmentedAsync(
43+
useFlatBlobListing: useFlatListing,
44+
BlobListingDetails.All,
45+
maxResults: null,
46+
null,
47+
null,
48+
null).GetAwaiter().GetResult().Results;
4449
}
4550
}
4651
}

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/AzureCloudBlockBlob.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public Stream Open()
6767
{
6868
#if REEF_DOTNET_BUILD
6969
var task = _blob.OpenReadAsync(null, _requestOptions, null);
70-
return task.Result;
70+
return task.GetAwaiter().GetResult();
7171
#else
7272
return _blob.OpenRead(null, _requestOptions, null);
7373
#endif
@@ -76,17 +76,15 @@ public Stream Open()
7676
public Stream Create()
7777
{
7878
#if REEF_DOTNET_BUILD
79-
var task = _blob.OpenWriteAsync(null, _requestOptions, null);
80-
return task.Result;
79+
return _blob.OpenWriteAsync(null, _requestOptions, null).GetAwaiter().GetResult();
8180
#else
8281
return _blob.OpenWrite(null, _requestOptions, null);
8382
#endif
8483
}
8584

8685
public bool Exists()
8786
{
88-
var task = _blob.ExistsAsync(_requestOptions, null);
89-
return task.Result;
87+
return _blob.ExistsAsync(_requestOptions, null).GetAwaiter().GetResult();
9088
}
9189

9290
public void Delete()
@@ -101,8 +99,7 @@ public void DeleteIfExists()
10199

102100
public string StartCopy(Uri source)
103101
{
104-
var task = _blob.StartCopyAsync(source, null, null, _requestOptions, null);
105-
return task.Result;
102+
return _blob.StartCopyAsync(source, null, null, _requestOptions, null).GetAwaiter().GetResult();
106103
}
107104

108105
public void DownloadToFile(string path, FileMode mode)

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureBlob/ICloudBlobClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ internal interface ICloudBlobClient
5959
/// Paginates a blob listing with prefix.
6060
/// </summary>
6161
BlobResultSegment ListBlobsSegmented(
62-
string path,
62+
string prefix,
6363
bool useFlatListing,
6464
BlobListingDetails blobListingDetails,
6565
int? maxResults,

lang/cs/Org.Apache.REEF.IO/FileSystem/AzureDataLake/AzureDataLakeFileSystem.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
using System;
1919
using System.Collections.Generic;
20+
using System.Globalization;
2021
using System.IO;
2122
using System.Linq;
2223
using System.Net;
@@ -249,10 +250,10 @@ public Uri CreateUriForPath(string path)
249250
}
250251
catch (UriFormatException)
251252
{
252-
resultUri = new Uri(new Uri(this.UriPrefix), path);
253+
resultUri = new Uri(new Uri(UriPrefix), path);
253254
}
254255

255-
if (!resultUri.AbsoluteUri.StartsWith(this.UriPrefix))
256+
if (!resultUri.AbsoluteUri.StartsWith(UriPrefix, true, CultureInfo.InvariantCulture))
256257
{
257258
throw new ArgumentException($"Given URI must begin with valid prefix ({this.UriPrefix})", nameof(path));
258259
}

0 commit comments

Comments
 (0)