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": {