Skip to content

Commit

Permalink
Fixed method names
Browse files Browse the repository at this point in the history
  • Loading branch information
sakno committed Jan 18, 2025
1 parent cfa470d commit e78d818
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 15 deletions.
14 changes: 8 additions & 6 deletions src/DotNext.Tests/IO/FileUriTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,15 @@ public sealed class FileUriTests : Test

[Theory]
[MemberData(nameof(GetPaths))]
public static void EncodeAsUri(string fileName, string expected)
public static void FromFileNameToUri(string fileName, string expected)
{
var uri = new Uri(FileUri.Encode(fileName), UriKind.Absolute);
var uri = new Uri(FileUri.CreateFromFileName(fileName), UriKind.Absolute);
True(uri.IsFile);
Equal(expected, uri.LocalPath);
}

[Fact]
public static void GetUriExtension()
public static void GetUriExtensionMethod()
{
var fileName = OperatingSystem.IsWindows() ? "C:\\some\\path" : "/some/path";
var uri = new FileInfo(fileName).GetUri();
Expand All @@ -47,10 +47,10 @@ public static void GetUriExtension()

[Theory]
[MemberData(nameof(GetPaths))]
public static void EncodeAsUriChars(string fileName, string expected)
public static void TryCreateFromFileName(string fileName, string expected)
{
Span<char> buffer = stackalloc char[512];
True(FileUri.TryEncode(fileName, UrlEncoder.Default, buffer, out var charsWritten));
True(FileUri.TryCreateFromFileName(fileName, UrlEncoder.Default, buffer, out var charsWritten));

var uri = new Uri(buffer.Slice(0, charsWritten).ToString(), UriKind.Absolute);
Equal(expected, uri.LocalPath);
Expand All @@ -66,9 +66,11 @@ public static void MaxEncodedLength()
[Theory]
[InlineData("~/path/name")]
[InlineData("C:path\\name")]
[InlineData("../path")]
[InlineData("./path")]
[InlineData("")]
public static void CheckFullyQualifiedPath(string path)
{
Throws<ArgumentException>(() => FileUri.Encode(path));
Throws<ArgumentException>(() => FileUri.CreateFromFileName(path));
}
}
18 changes: 9 additions & 9 deletions src/DotNext/IO/FileUri.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,28 +28,28 @@ public static class FileUri
/// <param name="settings">The encoding settings.</param>
/// <returns><paramref name="fileName"/> as URI. The return value can be passed to <see cref="Uri(string)"/> constructor.</returns>
/// <exception cref="ArgumentException"><paramref name="fileName"/> is not fully-qualified.</exception>
public static string Encode(ReadOnlySpan<char> fileName, TextEncoderSettings? settings = null)
public static string CreateFromFileName(ReadOnlySpan<char> fileName, TextEncoderSettings? settings = null)
{
if (fileName.IsEmpty)
throw new ArgumentException(ExceptionMessages.FullyQualifiedPathExpected, nameof(fileName));

return EncodeCore(fileName, settings is null ? UrlEncoder.Default : UrlEncoder.Create(settings));
return CreateFromFileNameCore(fileName, settings is null ? UrlEncoder.Default : UrlEncoder.Create(settings));
}

private static string EncodeCore(ReadOnlySpan<char> fileName, UrlEncoder encoder)
private static string CreateFromFileNameCore(ReadOnlySpan<char> fileName, UrlEncoder encoder)
{
var maxLength = GetMaxEncodedLengthCore(fileName, encoder);
using var buffer = (uint)maxLength <= (uint)SpanOwner<char>.StackallocThreshold
? stackalloc char[maxLength]
: new SpanOwner<char>(maxLength);

return TryEncodeCore(fileName, encoder, buffer.Span, out var writtenCount)
return TryCreateFromFileNameCore(fileName, encoder, buffer.Span, out var writtenCount)
? new(buffer.Span.Slice(0, writtenCount))
: string.Empty;
}

/// <summary>
/// Gets the maximum number of characters that can be produced by <see cref="TryEncode"/> method.
/// Gets the maximum number of characters that can be produced by <see cref="TryCreateFromFileName"/> method.
/// </summary>
/// <param name="fileName">The file name to be encoded.</param>
/// <param name="encoder">The encoder.</param>
Expand All @@ -71,15 +71,15 @@ private static int GetMaxEncodedLengthCore(ReadOnlySpan<char> fileName, UrlEncod
/// <param name="charsWritten">The number of characters written to <paramref name="output"/>.</param>
/// <returns><see langword="true"/> if <paramref name="fileName"/> is encoded successfully; otherwise, <see langword="false"/>.</returns>
/// <exception cref="ArgumentException"><paramref name="fileName"/> is not fully-qualified.</exception>
public static bool TryEncode(ReadOnlySpan<char> fileName, UrlEncoder? encoder, Span<char> output, out int charsWritten)
public static bool TryCreateFromFileName(ReadOnlySpan<char> fileName, UrlEncoder? encoder, Span<char> output, out int charsWritten)
{
if (fileName.IsEmpty)
throw new ArgumentException(ExceptionMessages.FullyQualifiedPathExpected, nameof(fileName));

return TryEncodeCore(fileName, encoder ?? UrlEncoder.Default, output, out charsWritten);
return TryCreateFromFileNameCore(fileName, encoder ?? UrlEncoder.Default, output, out charsWritten);
}

private static bool TryEncodeCore(ReadOnlySpan<char> fileName, UrlEncoder encoder, Span<char> output, out int charsWritten)
private static bool TryCreateFromFileNameCore(ReadOnlySpan<char> fileName, UrlEncoder encoder, Span<char> output, out int charsWritten)
{
var writer = new SpanWriter<char>(output);
writer.Write(FileScheme);
Expand Down Expand Up @@ -151,6 +151,6 @@ public static Uri GetUri(this FileSystemInfo fileInfo, TextEncoderSettings? sett
{
ArgumentNullException.ThrowIfNull(fileInfo);

return new(EncodeCore(fileInfo.FullName, settings is null ? UrlEncoder.Default : UrlEncoder.Create(settings)), UriKind.Absolute);
return new(CreateFromFileNameCore(fileInfo.FullName, settings is null ? UrlEncoder.Default : UrlEncoder.Create(settings)), UriKind.Absolute);
}
}

0 comments on commit e78d818

Please sign in to comment.