From 179020dce2941519a26270113fec86fe27950ae0 Mon Sep 17 00:00:00 2001 From: xiadosw <41824249+xiadosw@users.noreply.github.com> Date: Fri, 15 Mar 2024 08:47:12 +0000 Subject: [PATCH] Fix 'for' param, add some tests #1610 (#1613) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Список изменений - Исправлена ошибка с неуказанным For параметром (бесконечный мут) - Добавлены тесты ##### Обязательно выполните следующие пункты: - [x] Проверьте что ваш код не содержит конфликтов, и исправьте их по необходимости - [x] Напишите тесты, и обязательно проверьте что не падают другие. ##### Внимание! Pull Request'ы с непройденными тестами не принимаются --- .../Messages/MessagesCategoryTest.cs | 46 ++++++++++++++++++- ...eConversationMemberRestrictions_Mute.json} | 0 ...rsationMemberRestrictions_MuteForever.json | 7 +++ ...ConversationMemberRestrictions_Unmute.json | 5 ++ ...ngeConversationMemberRestrictionsParams.cs | 2 +- 5 files changed, 57 insertions(+), 3 deletions(-) rename VkNet.Tests/TestData/Categories/Messages/{ChangeConversationMemberRestrictions.json => ChangeConversationMemberRestrictions_Mute.json} (100%) create mode 100644 VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_MuteForever.json create mode 100644 VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Unmute.json diff --git a/VkNet.Tests/Categories/Messages/MessagesCategoryTest.cs b/VkNet.Tests/Categories/Messages/MessagesCategoryTest.cs index f853b5b32..ae4aa045f 100644 --- a/VkNet.Tests/Categories/Messages/MessagesCategoryTest.cs +++ b/VkNet.Tests/Categories/Messages/MessagesCategoryTest.cs @@ -1122,10 +1122,10 @@ public void SetMemberRole() } [Fact] - public void ChangeConversationMemberRestrictions() + public void ChangeConversationMemberRestrictions_Mute() { Url = "https://api.vk.com/method/messages.changeConversationMemberRestrictions"; - ReadCategoryJsonPath(nameof(ChangeConversationMemberRestrictions)); + ReadCategoryJsonPath(nameof(ChangeConversationMemberRestrictions_Mute)); var response = Api.Messages.ChangeConversationMemberRestrictions(new() { @@ -1142,4 +1142,46 @@ public void ChangeConversationMemberRestrictions() .BeEquivalentTo(new List { 814412 }); } + + [Fact] + public void ChangeConversationMemberRestrictions_MuteForever() + { + Url = "https://api.vk.com/method/messages.changeConversationMemberRestrictions"; + ReadCategoryJsonPath(nameof(ChangeConversationMemberRestrictions_MuteForever)); + + var response = Api.Messages.ChangeConversationMemberRestrictions(new() + { + PeerId = 1, + MemberIds = new List + { + 814412, 4245645 + }, + Action = ConversationMemberRestrictionsActionType.Ro + }); + + response.FailedMemberIds.Should() + .BeEquivalentTo(new List { 814412 }); + + } + + [Fact] + public void ChangeConversationMemberRestrictions_Unmute() + { + Url = "https://api.vk.com/method/messages.changeConversationMemberRestrictions"; + ReadCategoryJsonPath(nameof(ChangeConversationMemberRestrictions_Unmute)); + + var response = Api.Messages.ChangeConversationMemberRestrictions(new() + { + PeerId = 1, + MemberIds = new List + { + 4245645 + }, + Action = ConversationMemberRestrictionsActionType.Rw + }); + + response.FailedMemberIds.Should() + .BeEmpty(); + + } } \ No newline at end of file diff --git a/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions.json b/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Mute.json similarity index 100% rename from VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions.json rename to VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Mute.json diff --git a/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_MuteForever.json b/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_MuteForever.json new file mode 100644 index 000000000..fdccc103e --- /dev/null +++ b/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_MuteForever.json @@ -0,0 +1,7 @@ +{ + "response": { + "failed_member_ids": [ + 814412 + ] + } +} \ No newline at end of file diff --git a/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Unmute.json b/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Unmute.json new file mode 100644 index 000000000..fb03f4273 --- /dev/null +++ b/VkNet.Tests/TestData/Categories/Messages/ChangeConversationMemberRestrictions_Unmute.json @@ -0,0 +1,5 @@ +{ + "response": { + "failed_member_ids": [] + } +} \ No newline at end of file diff --git a/VkNet/Model/RequestParams/Messages/MessagesChangeConversationMemberRestrictionsParams.cs b/VkNet/Model/RequestParams/Messages/MessagesChangeConversationMemberRestrictionsParams.cs index 1595615a5..10a5c6e2c 100644 --- a/VkNet/Model/RequestParams/Messages/MessagesChangeConversationMemberRestrictionsParams.cs +++ b/VkNet/Model/RequestParams/Messages/MessagesChangeConversationMemberRestrictionsParams.cs @@ -27,7 +27,7 @@ public class MessagesChangeConversationMemberRestrictionsParams /// Время в секундах. Если нужно замутить навсегда, то указывать не нужно. /// [JsonProperty("for", NullValueHandling = NullValueHandling.Ignore)] - public long For { get; set; } + public long? For { get; set; } /// /// Разрешенные действия.