-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Реализация чтения информации о группе, добавлены авто тесты В Readme.md написал как получить Api ключ и как добавить его в код ; написал названия для тестов, отражая их назначение ; Response для постов, и для информации о группе, разбил на 1 файл = 1 класс ; ошибки о доступах к группе или постам со стены паблика, теперь выводятся не в консоль, а как исключение; написал комменты к методам, описывающие, что делает метод. Изменена сигнатура методов GetPostsAsync и GetGroupInfoAsync, написан класс VkApiException, написаны тесты для выброса ошибок 1. метод GetGroupInfoAsync теперь дополнительно запрашивает id группы, запрос также формируется теперь в методе 2. метод GetPostsAsync теперь дополнительно запрашивает id группы и количество выводимых постов 3. VkApiException наследуется от Exception и дополнительно реализует код ошибки 4. написаны 2 теста на проверку выбрасывания ошибок в методах GetGroupInfoAsync и GetPostsAsync
- Loading branch information
1 parent
dd1ecad
commit 3d14a72
Showing
42 changed files
with
1,087 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
global using NUnit.Framework; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
Для получения API ключа ВКонтакте необходимо: | ||
1. Зарегистрироваться как разработчик на сайте https://vk.com/dev. | ||
2. Выбрать Standalone - приложение (далее вам предложат перейти в другой сервис) | ||
3. В нем выбрать физическое лицо | ||
4. Ввести название приложеия, выбрать Web | ||
5. Ввести домены (как пример testapp.ru) | ||
6. Зайти в приложениеи найти раздел "Ключи доступа" | ||
7. Нужно нажать на знак глаза для "Сервисного ключа доступа" - это и есть наш API ключ | ||
|
||
Для того чтобы добавить его в код необходимо: | ||
1. ПКМ щелкнуть по проекту с тестами (TaktTusur.Media.Clients.VkApi.Tests) | ||
2. Выбрать пункт "Управление секретами пользователей | ||
3. и между фигурных скобок вставить ("VkApiKey": " ***Ваш API ключ*** ") | ||
4. Сохранить файл | ||
|
||
Программа готова к работе |
30 changes: 30 additions & 0 deletions
30
TaktTusur.Media.Clients.VkApi.Tests/TaktTusur.Media.Clients.VkApi.Tests.csproj
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
||
<PropertyGroup> | ||
<TargetFramework>net7.0</TargetFramework> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
|
||
<IsPackable>false</IsPackable> | ||
<IsTestProject>true</IsTestProject> | ||
<UserSecretsId>TaktTusur.Media.Clients.VkApi.Tests-35b2d6fa-2999-47f6-b581-f3806fb37ba6</UserSecretsId> | ||
</PropertyGroup> | ||
|
||
<ItemGroup> | ||
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.1" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0" /> | ||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.6.0" /> | ||
<PackageReference Include="NUnit" Version="3.13.3" /> | ||
<PackageReference Include="NUnit3TestAdapter" Version="4.4.2" /> | ||
<PackageReference Include="NUnit.Analyzers" Version="3.6.1" /> | ||
<PackageReference Include="coverlet.collector" Version="3.2.0" /> | ||
</ItemGroup> | ||
|
||
<ItemGroup> | ||
<ProjectReference Include="..\TaktTusur.Media.Clients.VkApi\TaktTusur.Media.Clients.VkApi.csproj" /> | ||
</ItemGroup> | ||
|
||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
using Microsoft.Extensions.Configuration; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi.Tests; | ||
|
||
public class VkApiClientTests | ||
{ | ||
private VkApiOptions _options = new VkApiOptions(); | ||
|
||
public VkApiClientTests() | ||
{ | ||
var builder = new ConfigurationBuilder() | ||
.AddUserSecrets<VkApiClientTests>(); | ||
|
||
var config = builder.Build(); | ||
_options.Key = config["VkApiKey"]; | ||
} | ||
[SetUp] | ||
public void Setup() | ||
{ | ||
} | ||
|
||
[Test] | ||
public async Task CheckingTitleVkGroup() | ||
{ | ||
var clientApi = new VkApiClient(_options); | ||
var info = await clientApi.GetGroupInfoAsync("takt_tusur", CancellationToken.None); | ||
Assert.AreEqual("Туристско-Альпинистский клуб ТУСУРа (ТАКТ)", info.GroupName, "неправильное название группы"); | ||
} | ||
|
||
[Test] | ||
public async Task CheckingQuantityOfPostsFromVkGroupWall () | ||
{ | ||
var clientApi = new VkApiClient(_options); | ||
var testResult = await clientApi.GetPostsAsync("takt_tusur", 5, CancellationToken.None); | ||
Assert.AreEqual(2406, testResult.Count, "неправильное количестов постов"); | ||
} | ||
|
||
[Test] | ||
public async Task CheckingPhotoIdFromAttachmentsFromVkGroupWallPost() | ||
{ | ||
var clientApi = new VkApiClient(_options); | ||
var testResult = await clientApi.GetPostsAsync("takt_tusur", 5, CancellationToken.None); | ||
Assert.AreEqual(457265786, testResult.Posts[1].PostAttachment[0].Photo.Id, "неправильный ID"); | ||
} | ||
|
||
[Test] | ||
public async Task CheckingThrowingExceptionGetGroupInfo() | ||
{ | ||
var clientApi = new VkApiClient(_options); | ||
Assert.ThrowsAsync<VkApiException>(async () => | ||
{ | ||
var info = await clientApi.GetGroupInfoAsync("takttusur", CancellationToken.None); | ||
}); | ||
} | ||
|
||
[Test] | ||
public async Task CheckingThrowingExceptionGetPost() | ||
{ | ||
var clientApi = new VkApiClient(_options); | ||
Assert.ThrowsAsync<VkApiException>(async () => | ||
{ | ||
var testResult = await clientApi.GetPostsAsync("takttusur", 5, CancellationToken.None); | ||
}); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
using RestSharp; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi; | ||
|
||
public class GroupByIdRequest | ||
{ | ||
[RequestProperty (Name = "group_id")] | ||
public string GroupId { get; set; } | ||
|
||
[RequestProperty(Name = "access_token")] | ||
public string AccessToken { get; set; } | ||
|
||
[RequestProperty(Name = "v")] | ||
public string Version { get; set; } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
using System.Text.Json.Serialization; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi.GroupInfoResponse | ||
{ | ||
public class Error | ||
{ | ||
[JsonPropertyName("error_code")] | ||
public int ErrorCode { get; set; } | ||
|
||
[JsonPropertyName("error_msg")] | ||
public string ErrorMessage { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
using System.Text.Json.Serialization; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi.GroupInfoResponse | ||
{ | ||
public class Group | ||
{ | ||
[JsonPropertyName("id")] | ||
public int Id { get; set; } | ||
|
||
[JsonPropertyName("name")] | ||
public string Name { get; set; } | ||
|
||
[JsonPropertyName("screen_name")] | ||
public string ScreenName { get; set; } | ||
|
||
[JsonPropertyName("Is_closed")] | ||
public int IsClosed { get; set; } | ||
|
||
[JsonPropertyName("type")] | ||
public string Type { get; set; } | ||
|
||
[JsonPropertyName("photo_50")] | ||
public string Photo50 { get; set; } | ||
|
||
[JsonPropertyName("photo_100")] | ||
public string Photo100 { get; set; } | ||
|
||
[JsonPropertyName("photo_200")] | ||
public string Photo200 { get; set; } | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
TaktTusur.Media.Clients.VkApi/GroupInfoResponse/GroupByIdResponse.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
using System.Text.Json.Serialization; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi.GroupInfoResponse; | ||
|
||
public class GroupByIdResponse | ||
{ | ||
[JsonPropertyName("response")] | ||
public Response Response { get; set; } | ||
|
||
[JsonPropertyName("error")] | ||
public Error GroupInfoError { get; set; } | ||
} | ||
|
||
|
||
|
10 changes: 10 additions & 0 deletions
10
TaktTusur.Media.Clients.VkApi/GroupInfoResponse/Response.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
using System.Text.Json.Serialization; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi.GroupInfoResponse | ||
{ | ||
public class Response | ||
{ | ||
[JsonPropertyName("groups")] | ||
public List<Group> Groups { get; set; } | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
using TaktTusur.Media.Clients.VkApi.WallByIdResponse; | ||
|
||
namespace TaktTusur.Media.Clients.VkApi | ||
{ | ||
public class Post | ||
{ | ||
public int PostDataTimeOfCreation { get; set; } | ||
public int PostId { get; set; } | ||
public Copyrights PostCopyrightNotes { get; set; } = new Copyrights(); | ||
public string PostType { get; set; } | ||
public string PostText { get; set; } | ||
public string PostURL { get; set; } | ||
public List<Attachment> PostAttachment { get; set; } = new List<Attachment>(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.