From 82c6dcf11992e5d105ece89573d6bc7e930fbb3a Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 18:36:01 +0900 Subject: [PATCH 1/6] Now licenseName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 26 ++++++++++++++++--- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index deb4fed5e..23f9a4b25 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -237,10 +237,13 @@ namespace VRM [Test] public void MetaTest() { - var model = new glTF_VRM_Meta(); + var model = new glTF_VRM_Meta() + { + licenseName = "CC0", + }; - var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1}", json); + var json = model.ToJson(); + Assert.AreEqual(@"{""texture"":-1,""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -249,7 +252,22 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{}",json2); + Assert.AreEqual(@"{""licenseName"":""CC0""}",json2); + } + + [Test] + public void MetaTestError() + { + var model = new glTF_VRM_Meta(); + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[licenseName.String] null", ex.Message); } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index 7d8dfb0db..16174efcc 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -118,7 +118,7 @@ namespace VRM #endregion #region Distribution License - [JsonSchema(Description = "License type", EnumValues = new object[] + [JsonSchema(Required = true, Description = "License type", EnumValues = new object[] { "Redistribution_Prohibited", "CC0", From 76abf901f1991a3f592be2f3a83a5c817cf81458 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 18:55:02 +0900 Subject: [PATCH 2/6] Now allowedUserName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 77 ++++++++++++++++--- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 66 insertions(+), 13 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 23f9a4b25..24305c6fd 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -240,10 +240,11 @@ namespace VRM var model = new glTF_VRM_Meta() { licenseName = "CC0", + allowedUserName = "OnlyAuthor", }; - var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""licenseName"":""CC0""}", json); + var json = model.ToJson(); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -252,22 +253,74 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}",json2); } [Test] public void MetaTestError() { - var model = new glTF_VRM_Meta(); - - var c = new JsonSchemaValidationContext("") { - EnableDiagnosisForNotRequiredFields = true, - }; - var ex = Assert.Throws( - () => JsonSchema.FromType().Serialize(model, c) - ); - Assert.AreEqual("[licenseName.String] null", ex.Message); + var model = new glTF_VRM_Meta(); + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[allowedUserName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + licenseName = "_INVALID_SOME_THING_", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[licenseName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[allowedUserName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[allowedUserName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index 16174efcc..d88bb224b 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -59,7 +59,7 @@ namespace VRM public int texture = -1; #region Ussage Permission - [JsonSchema(Description = "A person who can perform with this avatar ", EnumValues = new object[] { + [JsonSchema(Required = true, Description = "A person who can perform with this avatar ", EnumValues = new object[] { "OnlyAuthor", "ExplicitlyLicensedPerson", "Everyone", From 1632e9de40e4f45a8847eca23b88bed4b91efd24 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 18:59:59 +0900 Subject: [PATCH 3/6] Now violentUssageName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 45 ++++++++++++++++++- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 24305c6fd..7cd56f9b2 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -241,10 +241,11 @@ namespace VRM { licenseName = "CC0", allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", }; var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}", json); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -253,7 +254,7 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); } [Test] @@ -276,6 +277,7 @@ namespace VRM var model = new glTF_VRM_Meta() { allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", licenseName = "_INVALID_SOME_THING_", }; @@ -292,7 +294,9 @@ namespace VRM { var model = new glTF_VRM_Meta() { + // allowedUserName = "OnlyAuthor", licenseName = "CC0", + violentUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -309,6 +313,7 @@ namespace VRM var model = new glTF_VRM_Meta() { allowedUserName = "_INVALID_SOME_THING_", + violentUssageName = "Disallow", licenseName = "CC0", }; @@ -321,6 +326,42 @@ namespace VRM ); Assert.AreEqual("[allowedUserName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + //violentUssageName = "Disallow", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[violentUssageName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[violentUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index d88bb224b..6dbf9d4e4 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -77,7 +77,7 @@ namespace VRM } } - [JsonSchema(Description = "Permission to perform violent acts with this avatar", EnumValues = new object[] + [JsonSchema(Required = true, Description = "Permission to perform violent acts with this avatar", EnumValues = new object[] { "Disallow", "Allow", From 3321480843e0fbaee9a37c92167a08e2e9d4c937 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 19:02:57 +0900 Subject: [PATCH 4/6] Now sexualUssageName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 48 ++++++++++++++++++- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 7cd56f9b2..21dd82844 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -242,10 +242,11 @@ namespace VRM licenseName = "CC0", allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", + sexualUssageName = "Disallow", }; var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}", json); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -254,7 +255,7 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); } [Test] @@ -279,6 +280,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", licenseName = "_INVALID_SOME_THING_", + sexualUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -297,6 +299,7 @@ namespace VRM // allowedUserName = "OnlyAuthor", licenseName = "CC0", violentUssageName = "Disallow", + sexualUssageName = "Disallow", }; var c = new JsonSchemaValidationContext("") @@ -314,6 +317,7 @@ namespace VRM { allowedUserName = "_INVALID_SOME_THING_", violentUssageName = "Disallow", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -332,6 +336,7 @@ namespace VRM { allowedUserName = "OnlyAuthor", //violentUssageName = "Disallow", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -350,6 +355,7 @@ namespace VRM { allowedUserName = "OnlyAuthor", violentUssageName = "_INVALID_SOME_THING_", + sexualUssageName = "Disallow", licenseName = "CC0", }; @@ -362,6 +368,44 @@ namespace VRM ); Assert.AreEqual("[violentUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + //sexualUssageName = "Disallow", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[sexualUssageName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + sexualUssageName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[sexualUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index 6dbf9d4e4..279dc5839 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -89,7 +89,7 @@ namespace VRM set { violentUssageName = value.ToString(); } } - [JsonSchema(Description = "Permission to perform sexual acts with this avatar", EnumValues = new object[] + [JsonSchema(Required = true, Description = "Permission to perform sexual acts with this avatar", EnumValues = new object[] { "Disallow", "Allow", From 0eb67ada22d12d4ff43627d01848819a11d3a67a Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 19:04:24 +0900 Subject: [PATCH 5/6] Refactor --- .../Editor/Tests/UniVRMSerializeTests.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index 21dd82844..edc4a968a 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -239,10 +239,10 @@ namespace VRM { var model = new glTF_VRM_Meta() { - licenseName = "CC0", allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "Disallow", + licenseName = "CC0", }; var json = model.ToJson(); @@ -279,8 +279,27 @@ namespace VRM { allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", - licenseName = "_INVALID_SOME_THING_", sexualUssageName = "Disallow", + //licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[licenseName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + sexualUssageName = "Disallow", + licenseName = "_INVALID_SOME_THING_", }; var c = new JsonSchemaValidationContext("") @@ -297,9 +316,9 @@ namespace VRM var model = new glTF_VRM_Meta() { // allowedUserName = "OnlyAuthor", - licenseName = "CC0", violentUssageName = "Disallow", sexualUssageName = "Disallow", + licenseName = "CC0", }; var c = new JsonSchemaValidationContext("") From 321dd7ffb21b935da24d4e5d755077920878a032 Mon Sep 17 00:00:00 2001 From: yutopp Date: Fri, 1 Feb 2019 19:09:07 +0900 Subject: [PATCH 6/6] Now commercialUssageName field in meta is required --- .../Editor/Tests/UniVRMSerializeTests.cs | 53 ++++++++++++++++++- .../UniVRM/Scripts/Format/glTF_VRM_Meta.cs | 2 +- 2 files changed, 52 insertions(+), 3 deletions(-) diff --git a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs index edc4a968a..b3d3362d9 100644 --- a/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs +++ b/Assets/VRM/UniVRM/Editor/Tests/UniVRMSerializeTests.cs @@ -242,11 +242,12 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; var json = model.ToJson(); - Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}", json); + Assert.AreEqual(@"{""texture"":-1,""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""commercialUssageName"":""Disallow"",""licenseName"":""CC0""}", json); Debug.Log(json); var c = new JsonSchemaValidationContext("") @@ -255,7 +256,7 @@ namespace VRM }; var json2 = JsonSchema.FromType().Serialize(model, c); // NOTE: New serializer outputs values which will not be used... - Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); + Assert.AreEqual(@"{""allowedUserName"":""OnlyAuthor"",""violentUssageName"":""Disallow"",""sexualUssageName"":""Disallow"",""commercialUssageName"":""Disallow"",""licenseName"":""CC0""}",json2); } [Test] @@ -280,6 +281,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", //licenseName = "CC0", }; @@ -299,6 +301,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "_INVALID_SOME_THING_", }; @@ -318,6 +321,7 @@ namespace VRM // allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -337,6 +341,7 @@ namespace VRM allowedUserName = "_INVALID_SOME_THING_", violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -356,6 +361,7 @@ namespace VRM allowedUserName = "OnlyAuthor", //violentUssageName = "Disallow", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -375,6 +381,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "_INVALID_SOME_THING_", sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -394,6 +401,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", //sexualUssageName = "Disallow", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -413,6 +421,7 @@ namespace VRM allowedUserName = "OnlyAuthor", violentUssageName = "Disallow", sexualUssageName = "_INVALID_SOME_THING_", + commercialUssageName = "Disallow", licenseName = "CC0", }; @@ -425,6 +434,46 @@ namespace VRM ); Assert.AreEqual("[sexualUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + sexualUssageName = "Disallow", + //commercialUssageName = "Disallow", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[commercialUssageName.String] null", ex.Message); + } + + { + var model = new glTF_VRM_Meta() + { + allowedUserName = "OnlyAuthor", + violentUssageName = "Disallow", + sexualUssageName = "Disallow", + commercialUssageName = "_INVALID_SOME_THING_", + licenseName = "CC0", + }; + + var c = new JsonSchemaValidationContext("") + { + EnableDiagnosisForNotRequiredFields = true, + }; + var ex = Assert.Throws( + () => JsonSchema.FromType().Serialize(model, c) + ); + Assert.AreEqual("[commercialUssageName.String] _INVALID_SOME_THING_ is not valid enum", ex.Message); + } } // TODO: Move to another suitable location diff --git a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs index 279dc5839..ceceead64 100644 --- a/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs +++ b/Assets/VRM/UniVRM/Scripts/Format/glTF_VRM_Meta.cs @@ -101,7 +101,7 @@ namespace VRM set { sexualUssageName = value.ToString(); } } - [JsonSchema(Description = "For commercial use", EnumValues = new object[] + [JsonSchema(Required = true, Description = "For commercial use", EnumValues = new object[] { "Disallow", "Allow",