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

Commit 64d9397

Browse files
committed
Major update
+ Added support for OAuth + Added support for fetch requests
1 parent 021b3b9 commit 64d9397

39 files changed

+1953
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,3 +348,4 @@ MigrationBackup/
348348

349349
# Ionide (cross platform F# VS Code tools) working folder
350350
.ionide/
351+
AniAPI.NET.Test/appsettings.json
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>net5.0</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<ProjectReference Include="..\AniAPI.NET\AniAPI.NET.csproj" />
10+
</ItemGroup>
11+
12+
</Project>

AniAPI.NET.OAuth.Test/Program.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System;
2+
3+
namespace AniAPI.NET.OAuth.Test
4+
{
5+
class Program
6+
{
7+
static void Main(string[] args)
8+
{
9+
Test();
10+
}
11+
12+
private static async void Test()
13+
{
14+
try
15+
{
16+
AniAPI.Instance.UseAuthorizationCode("d05c6966-9ca6-43b7-afc4-d0c1376261bc", "f060ce03-1cec-4b27-8dbc-d04ec5f6f55f", "http://localhost:3000/auth");
17+
await AniAPI.Instance.Login();
18+
}
19+
catch(Exception ex)
20+
{
21+
throw;
22+
}
23+
}
24+
}
25+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>net5.0</TargetFramework>
5+
6+
<IsPackable>false</IsPackable>
7+
</PropertyGroup>
8+
9+
<ItemGroup>
10+
<PackageReference Include="Microsoft.Extensions.Configuration" Version="5.0.0" />
11+
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="5.0.0" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
13+
<PackageReference Include="xunit" Version="2.4.1" />
14+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
15+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
16+
<PrivateAssets>all</PrivateAssets>
17+
</PackageReference>
18+
<PackageReference Include="coverlet.collector" Version="1.3.0">
19+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
20+
<PrivateAssets>all</PrivateAssets>
21+
</PackageReference>
22+
</ItemGroup>
23+
24+
<ItemGroup>
25+
<ProjectReference Include="..\AniAPI.NET\AniAPI.NET.csproj" />
26+
</ItemGroup>
27+
28+
<ItemGroup>
29+
<None Update="appsettings.json">
30+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
31+
</None>
32+
</ItemGroup>
33+
34+
</Project>

AniAPI.NET.Test/AnimeTest.cs

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
using AniAPI.NET.Enums;
2+
using AniAPI.NET.Filters;
3+
using AniAPI.NET.Models;
4+
using Newtonsoft.Json;
5+
using System;
6+
using System.Collections.Generic;
7+
using System.Linq;
8+
using System.Text;
9+
using System.Threading.Tasks;
10+
using Xunit;
11+
using Xunit.Abstractions;
12+
13+
namespace AniAPI.NET.Test
14+
{
15+
public class AnimeTest
16+
{
17+
private ITestOutputHelper output;
18+
19+
public AnimeTest(ITestOutputHelper output)
20+
{
21+
this.output = output;
22+
}
23+
24+
[Fact]
25+
public void Get_Anime()
26+
{
27+
long id = 1;
28+
29+
var result = AniAPI.Instance.GetAnime(id);
30+
31+
Assert.NotNull(result);
32+
Assert.IsType<APIResponse<Anime>>(result);
33+
34+
Assert.True(result.StatusCode == 200);
35+
Assert.NotNull(result.Data);
36+
37+
Assert.Equal(id, result.Data.Id);
38+
39+
output.WriteLine(JsonConvert.SerializeObject(result));
40+
}
41+
42+
[Fact]
43+
public void Get_Anime_List()
44+
{
45+
AnimeFilter filter = new AnimeFilter()
46+
{
47+
Title = "Cowboy Bebop",
48+
AnilistId = 1,
49+
MyAnimeListId = 1,
50+
Formats = new AnimeFormatEnum[2]
51+
{
52+
AnimeFormatEnum.TV,
53+
AnimeFormatEnum.TV_SHORT
54+
},
55+
Status = AnimeStatusEnum.FINISHED,
56+
Year = 1998,
57+
Season = AnimeSeasonEnum.SPRING,
58+
Genres = new string[3]
59+
{
60+
"Action",
61+
"Guns",
62+
"Military"
63+
},
64+
Sort = new Dictionary<string, SortDirectionEnum>()
65+
{
66+
{ "titles.en", SortDirectionEnum.DESCENDING }
67+
}
68+
};
69+
70+
var result = AniAPI.Instance.GetAnimeList(filter);
71+
72+
Assert.NotNull(result);
73+
Assert.IsType<APIResponse<Pagination<Anime>>>(result);
74+
75+
Assert.True(result.StatusCode == 200);
76+
Assert.NotNull(result.Data);
77+
78+
output.WriteLine(JsonConvert.SerializeObject(result));
79+
}
80+
}
81+
}

AniAPI.NET.Test/EpisodeTest.cs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
using AniAPI.NET.Enums;
2+
using AniAPI.NET.Filters;
3+
using AniAPI.NET.Models;
4+
using Newtonsoft.Json;
5+
using System;
6+
using System.Collections.Generic;
7+
using System.Linq;
8+
using System.Text;
9+
using System.Threading.Tasks;
10+
using Xunit;
11+
using Xunit.Abstractions;
12+
13+
namespace AniAPI.NET.Test
14+
{
15+
public class EpisodeTest
16+
{
17+
private ITestOutputHelper output;
18+
19+
public EpisodeTest(ITestOutputHelper output)
20+
{
21+
this.output = output;
22+
}
23+
24+
[Fact]
25+
public void Get_Episode()
26+
{
27+
long id = 1;
28+
29+
var result = AniAPI.Instance.GetEpisode(id);
30+
31+
Assert.NotNull(result);
32+
Assert.IsType<APIResponse<Episode>>(result);
33+
34+
Assert.True(result.StatusCode == 200);
35+
Assert.NotNull(result.Data);
36+
37+
Assert.Equal(id, result.Data.Id);
38+
39+
output.WriteLine(JsonConvert.SerializeObject(result));
40+
}
41+
42+
[Fact]
43+
public void Get_Episode_List()
44+
{
45+
EpisodeFilter filter = new EpisodeFilter()
46+
{
47+
AnimeId = 1,
48+
Source = "gogoanime",
49+
Locale = "en",
50+
Sort = new Dictionary<string, SortDirectionEnum>()
51+
{
52+
{ "number", SortDirectionEnum.DESCENDING }
53+
}
54+
};
55+
56+
var result = AniAPI.Instance.GetEpisodeList(filter);
57+
58+
Assert.NotNull(result);
59+
Assert.IsType<APIResponse<Pagination<Episode>>>(result);
60+
61+
Assert.True(result.StatusCode == 200);
62+
Assert.NotNull(result.Data);
63+
64+
output.WriteLine(JsonConvert.SerializeObject(result));
65+
}
66+
}
67+
}

AniAPI.NET.Test/ResourcesTest.cs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
using AniAPI.NET.Models;
2+
using AniAPI.NET.Models.Resources;
3+
using Newtonsoft.Json;
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Linq;
7+
using System.Text;
8+
using System.Threading.Tasks;
9+
using Xunit;
10+
using Xunit.Abstractions;
11+
12+
namespace AniAPI.NET.Test
13+
{
14+
public class ResourcesTest
15+
{
16+
private ITestOutputHelper output;
17+
18+
public ResourcesTest(ITestOutputHelper output)
19+
{
20+
this.output = output;
21+
}
22+
23+
[Fact]
24+
public void Get_Genres()
25+
{
26+
var result = AniAPI.Instance.GetGenres();
27+
28+
Assert.NotNull(result);
29+
Assert.IsType<APIResponse<GenresResource>>(result);
30+
31+
Assert.True(result.StatusCode == 200);
32+
Assert.NotNull(result.Data);
33+
34+
output.WriteLine(JsonConvert.SerializeObject(result));
35+
}
36+
37+
[Fact]
38+
public void Get_Localizations()
39+
{
40+
var result = AniAPI.Instance.GetLocalizations();
41+
42+
Assert.NotNull(result);
43+
Assert.IsType<APIResponse<LocalizationsResource>>(result);
44+
45+
Assert.True(result.StatusCode == 200);
46+
Assert.NotNull(result.Data);
47+
48+
output.WriteLine(JsonConvert.SerializeObject(result));
49+
}
50+
}
51+
}

AniAPI.NET.Test/SongTest.cs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
using AniAPI.NET.Enums;
2+
using AniAPI.NET.Filters;
3+
using AniAPI.NET.Models;
4+
using Newtonsoft.Json;
5+
using System;
6+
using System.Collections.Generic;
7+
using System.Linq;
8+
using System.Text;
9+
using System.Threading.Tasks;
10+
using Xunit;
11+
using Xunit.Abstractions;
12+
13+
namespace AniAPI.NET.Test
14+
{
15+
public class SongTest
16+
{
17+
private ITestOutputHelper output;
18+
19+
public SongTest(ITestOutputHelper output)
20+
{
21+
this.output = output;
22+
}
23+
24+
[Fact]
25+
public void Get_Song()
26+
{
27+
long id = 1;
28+
29+
var result = AniAPI.Instance.GetSong(id);
30+
31+
Assert.NotNull(result);
32+
Assert.IsType<APIResponse<Song>>(result);
33+
34+
Assert.True(result.StatusCode == 200);
35+
Assert.NotNull(result.Data);
36+
37+
Assert.Equal(id, result.Data.Id);
38+
39+
output.WriteLine(JsonConvert.SerializeObject(result));
40+
}
41+
42+
[Fact]
43+
public void Get_Song_List()
44+
{
45+
SongFilter filter = new SongFilter()
46+
{
47+
AnimeId = 10,
48+
Type = SongTypeEnum.OPENING,
49+
Sort = new Dictionary<string, SortDirectionEnum>()
50+
{
51+
{ "year", SortDirectionEnum.DESCENDING },
52+
{ "season", SortDirectionEnum.ASCENDING }
53+
}
54+
};
55+
56+
var result = AniAPI.Instance.GetSongList(filter);
57+
58+
Assert.NotNull(result);
59+
Assert.IsType<APIResponse<Pagination<Song>>>(result);
60+
61+
Assert.True(result.StatusCode == 200);
62+
Assert.NotNull(result.Data);
63+
64+
output.WriteLine(JsonConvert.SerializeObject(result));
65+
}
66+
}
67+
}

0 commit comments

Comments
 (0)