Skip to content

Commit

Permalink
One drive (#1)
Browse files Browse the repository at this point in the history
* Change nuget package icon

* Add unit test project

* Add one drive public shares support

* Add unit tests

* Add tests to github actions
  • Loading branch information
Jandini committed Oct 9, 2023
1 parent 53d94af commit de3983d
Show file tree
Hide file tree
Showing 14 changed files with 570 additions and 12 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/build.yml
Expand Up @@ -33,6 +33,9 @@ jobs:

- name: Restore
run: dotnet restore

- name: Test
run: dotnet test --no-restore -c:Release

- name: Pack
run: dotnet pack --no-restore -c:Release
Expand Down
Binary file modified icon.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions src/AnyoneDrive.Tests/AnyoneDrive.Tests.csproj
@@ -0,0 +1,29 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\AnyoneDrive\AnyoneDrive.csproj" />
</ItemGroup>

</Project>
1 change: 1 addition & 0 deletions src/AnyoneDrive.Tests/GlobalUsings.cs
@@ -0,0 +1 @@
global using Xunit;
42 changes: 42 additions & 0 deletions src/AnyoneDrive.Tests/OneDriveFile_Must.cs
@@ -0,0 +1,42 @@
namespace AnyoneDrive.Tests
{
public class OneDriveFile_Must
{



[Fact]
public async void Get_Stream()
{
var httpClient = new HttpClient();
var root = new OneDriveFolderInfo("https://1drv.ms/f/s!AuveTnis1UC4ylwrkuYqhdobhUGy?e=aq9M7h");
var folders = await root.GetFoldersAsync(httpClient, CancellationToken.None);

Assert.NotNull(folders);

var files = await folders.First().GetFilesAsync(httpClient, CancellationToken.None);
Assert.Equal(5, files.Length);

using var stream = await files[0].GetStreamAsync(httpClient, CancellationToken.None);
}


[Fact]
public async void Read_Stream()
{
var httpClient = new HttpClient();
var root = new OneDriveFolderInfo("https://1drv.ms/f/s!AuveTnis1UC4ylwrkuYqhdobhUGy?e=aq9M7h");
var folders = await root.GetFoldersAsync(httpClient, CancellationToken.None);

Assert.NotNull(folders);

var files = await folders.First().GetFilesAsync(httpClient, CancellationToken.None);

using var stream = await files[0].GetStreamAsync(httpClient, CancellationToken.None);

byte[] buffer = await stream.ReadBlockAsync(65536);
Assert.Equal(5959, buffer.Length);

}
}
}
74 changes: 74 additions & 0 deletions src/AnyoneDrive.Tests/OneDriveFolder_Must.cs
@@ -0,0 +1,74 @@
namespace AnyoneDrive.Tests
{
public class OneDriveFolder_Must
{

const string TEST_SHARE = "https://1drv.ms/f/s!AuveTnis1UC4ylwrkuYqhdobhUGy?e=aq9M7h";

[Fact]
public async void Get_Two_Items()
{

var root = new OneDriveFolderInfo(TEST_SHARE);
var items = await root.GetItemsAsync(new HttpClient(), CancellationToken.None);

Assert.Equal(2, items.Length);
}

[Fact]
public async void Get_One_File()
{

var root = new OneDriveFolderInfo(TEST_SHARE);
var items = await root.GetFilesAsync(new HttpClient(), CancellationToken.None);

Assert.Single(items);
}


[Fact]
public async void Get_One_Folder()
{

var root = new OneDriveFolderInfo(TEST_SHARE);
var items = await root.GetFoldersAsync(new HttpClient(), CancellationToken.None);

Assert.Single(items);
}


[Fact]
public async void Get_SubFolder_Files()
{
var httpClient = new HttpClient();
var root = new OneDriveFolderInfo(TEST_SHARE);
var folders = await root.GetFoldersAsync(httpClient, CancellationToken.None);

Assert.NotNull(folders);
Assert.Single(folders);
Assert.Equal("Single folder", folders[0].Name);

var files = await folders.First().GetFilesAsync(httpClient, CancellationToken.None);

Assert.Equal(5, files.Length);
}



[Fact]
public async void Read_File()
{
var httpClient = new HttpClient();
var root = new OneDriveFolderInfo(TEST_SHARE);
var folders = await root.GetFoldersAsync(httpClient, CancellationToken.None);

Assert.NotNull(folders);

var files = await folders.First().GetFilesAsync(httpClient, CancellationToken.None);

Assert.Equal(5, files.Length);

using var stream = await files[0].GetStreamAsync(httpClient, CancellationToken.None);
}
}
}
8 changes: 7 additions & 1 deletion src/AnyoneDrive.sln
Expand Up @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33516.290
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FF455F87-18FF-4B0D-801D-0D71F7FF2034}") = "AnyoneDrive", "AnyoneDrive\AnyoneDrive.csproj", "{1A18243F-EB83-4BC0-9F83-D2E59185798C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AnyoneDrive", "AnyoneDrive\AnyoneDrive.csproj", "{1A18243F-EB83-4BC0-9F83-D2E59185798C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnyoneDrive.Tests", "AnyoneDrive.Tests\AnyoneDrive.Tests.csproj", "{C6C2450D-FC7B-48D8-85E4-0312C65571A8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand All @@ -15,6 +17,10 @@ Global
{1A18243F-EB83-4BC0-9F83-D2E59185798C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A18243F-EB83-4BC0-9F83-D2E59185798C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A18243F-EB83-4BC0-9F83-D2E59185798C}.Release|Any CPU.Build.0 = Release|Any CPU
{C6C2450D-FC7B-48D8-85E4-0312C65571A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C6C2450D-FC7B-48D8-85E4-0312C65571A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C6C2450D-FC7B-48D8-85E4-0312C65571A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C6C2450D-FC7B-48D8-85E4-0312C65571A8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
8 changes: 4 additions & 4 deletions src/AnyoneDrive/AnyoneDrive.csproj
@@ -1,10 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<BaseOutputPath>..\..\bin</BaseOutputPath>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>10</LangVersion>
</PropertyGroup>

Expand All @@ -28,15 +27,16 @@
</PropertyGroup>

<ItemGroup>
<None Include="..\..\icon.png" Pack="true" PackagePath=""/>
<None Include="..\..\icon.png" Pack="true" PackagePath="" />
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
<None Include="..\..\README.md" Pack="true" PackagePath="\"/>
<None Include="..\..\README.md" Pack="true" PackagePath="\" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="GitVersion.MsBuild" Version="5.12.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Text.Json" Version="7.0.3" />
</ItemGroup>
</Project>
7 changes: 0 additions & 7 deletions src/AnyoneDrive/Class1.cs

This file was deleted.

0 comments on commit de3983d

Please sign in to comment.