From 4b97bf580309afb69e9703fc4c11e52eba583c86 Mon Sep 17 00:00:00 2001 From: LamGC Date: Sun, 8 Nov 2020 21:36:39 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=20Core=20=E6=8F=90=E5=8D=87=20JsonFram?= =?UTF-8?q?eworkDescriptorSerializerTest=20=E6=B5=8B=E8=AF=95=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E7=8E=87=E8=87=B3=20100%;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [Update] JsonFrameworkDescriptorSerializerTest 提升测试覆盖率; [Add] badBotCode-MissingPatternsField-framework.json, badBotCode-PatternsFieldNonArray-framework.json 添加两种错误解析数据; [Change] test-framework.json 调整解析数据以检查两种软错误解析情况; --- ...JsonFrameworkDescriptorSerializerTest.java | 22 +++++++++++++ ...otCode-MissingPatternsField-framework.json | 28 +++++++++++++++++ ...tCode-PatternsFieldNonArray-framework.json | 31 +++++++++++++++++++ .../src/test/resources/test-framework.json | 12 ++++++- 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 ContentGrabbingJi-core/src/test/resources/badBotCode-MissingPatternsField-framework.json create mode 100644 ContentGrabbingJi-core/src/test/resources/badBotCode-PatternsFieldNonArray-framework.json diff --git a/ContentGrabbingJi-core/src/test/java/net/lamgc/cgj/bot/framework/JsonFrameworkDescriptorSerializerTest.java b/ContentGrabbingJi-core/src/test/java/net/lamgc/cgj/bot/framework/JsonFrameworkDescriptorSerializerTest.java index c59e88e..69d0d23 100644 --- a/ContentGrabbingJi-core/src/test/java/net/lamgc/cgj/bot/framework/JsonFrameworkDescriptorSerializerTest.java +++ b/ContentGrabbingJi-core/src/test/java/net/lamgc/cgj/bot/framework/JsonFrameworkDescriptorSerializerTest.java @@ -74,6 +74,8 @@ public class JsonFrameworkDescriptorSerializerTest { List expectedDependency = new ArrayList<>(); expectedDependency.add(new PluginDependency("RequireDepend@1.0.0")); expectedDependency.add(new PluginDependency("OptionalDepend?@1.0.0")); + expectedDependency.add(new PluginDependency("AllVersionSupportedDependA")); + expectedDependency.add(new PluginDependency("AllVersionSupportedDependB@*")); Assert.assertEquals(expectedDependency, descriptor.getDependencies()); @@ -82,6 +84,8 @@ public class JsonFrameworkDescriptorSerializerTest { List expectedAuthors = new ArrayList<>(); expectedAuthors.add(new Author("LamGC", "https://github.com/LamGC", "lam827@lamgc.net")); + expectedAuthors.add(new Author("UserA")); + expectedAuthors.add(new Author("UserB")); Assert.assertEquals(expectedAuthors, descriptor.getAuthors()); @@ -125,6 +129,24 @@ public class JsonFrameworkDescriptorSerializerTest { } } + @Test + public void botCode_MissingPatternsTest() throws IOException { + try (Reader resourceReader = getResourceAsReader("badBotCode-MissingPatternsField-framework.json")) { + List patterns = gson.fromJson(resourceReader, DefaultFrameworkDescriptor.class) + .getBotCodeDescriptor().getPatterns(); + Assert.assertTrue(patterns.isEmpty()); + } + } + + @Test + public void botCode_PatternsFieldNonArrayTest() throws IOException { + try (Reader resourceReader = getResourceAsReader("badBotCode-PatternsFieldNonArray-framework.json")) { + List patterns = gson.fromJson(resourceReader, DefaultFrameworkDescriptor.class) + .getBotCodeDescriptor().getPatterns(); + Assert.assertTrue(patterns.isEmpty()); + } + } + @Test(expected = JsonParseException.class) public void platform_NonAObjectTest() throws IOException { try (Reader resourceReader = getResourceAsReader("badPlatform-NonObject-framework.json")) { diff --git a/ContentGrabbingJi-core/src/test/resources/badBotCode-MissingPatternsField-framework.json b/ContentGrabbingJi-core/src/test/resources/badBotCode-MissingPatternsField-framework.json new file mode 100644 index 0000000..772b851 --- /dev/null +++ b/ContentGrabbingJi-core/src/test/resources/badBotCode-MissingPatternsField-framework.json @@ -0,0 +1,28 @@ +// 该文件为 framework.json 格式完整示例, 非测试用文件. +{ + "id": "cgj-mirai", + "description": "test", + "version": "3.0.0-alpha", + "requiresVersion": "=>3.0.0", + "provider": "Github@LamGC, Github@mamoe", + "license": "AGPL-3.0", + "frameworkClass": "com.example.FrameworkMain", + "dependencies": [ + "RequireDepend@1.0.0", + "OptionalDepend?@1.0.0" + ], + + "platform": { + "name": "Tencent QQ", + "identify": "qq" + }, + "authors": [ + { + "name": "LamGC", + "url": "https://github.com/LamGC", + "email": "lam827@lamgc.net" + } + ], + "botCode": { + } +} \ No newline at end of file diff --git a/ContentGrabbingJi-core/src/test/resources/badBotCode-PatternsFieldNonArray-framework.json b/ContentGrabbingJi-core/src/test/resources/badBotCode-PatternsFieldNonArray-framework.json new file mode 100644 index 0000000..1723501 --- /dev/null +++ b/ContentGrabbingJi-core/src/test/resources/badBotCode-PatternsFieldNonArray-framework.json @@ -0,0 +1,31 @@ +// 该文件为 framework.json 格式完整示例, 非测试用文件. +{ + "id": "cgj-mirai", + "description": "test", + "version": "3.0.0-alpha", + "requiresVersion": "=>3.0.0", + "provider": "Github@LamGC, Github@mamoe", + "license": "AGPL-3.0", + "frameworkClass": "com.example.FrameworkMain", + "dependencies": [ + "RequireDepend@1.0.0", + "OptionalDepend?@1.0.0" + ], + + "platform": { + "name": "Tencent QQ", + "identify": "qq" + }, + "authors": [ + { + "name": "LamGC", + "url": "https://github.com/LamGC", + "email": "lam827@lamgc.net" + } + ], + "botCode": { + "patterns": { + + } + } +} \ No newline at end of file diff --git a/ContentGrabbingJi-core/src/test/resources/test-framework.json b/ContentGrabbingJi-core/src/test/resources/test-framework.json index 74f69fb..eb1a7c3 100644 --- a/ContentGrabbingJi-core/src/test/resources/test-framework.json +++ b/ContentGrabbingJi-core/src/test/resources/test-framework.json @@ -8,7 +8,9 @@ "frameworkClass": "com.example.FrameworkMain", "dependencies": [ "RequireDepend@1.0.0", - "OptionalDepend?@1.0.0" + "OptionalDepend?@1.0.0", + "AllVersionSupportedDependA", + "AllVersionSupportedDependB@*" ], "platform": { @@ -20,6 +22,14 @@ "name": "LamGC", "url": "https://github.com/LamGC", "email": "lam827@lamgc.net" + }, + { + "name": "UserA", + "url": [] + }, + { + "name": "UserB", + "email": [] } ], "botCode": {