168 lines
3.8 KiB
C#
168 lines
3.8 KiB
C#
using NUnit.Framework;
|
|
using UniJSON;
|
|
using System.Linq;
|
|
|
|
namespace UniGLTF
|
|
{
|
|
public class GltfJsonUtilTests
|
|
{
|
|
[Test]
|
|
public void Update_extensionUsed()
|
|
{
|
|
var dst = GltfJsonUtil.FindUsedExtensionsAndUpdateJson(@"{
|
|
""asset"": {
|
|
""generator"": ""COLLADA2GLTF"",
|
|
""version"": ""2.0""
|
|
},
|
|
""scene"": 0,
|
|
""scenes"": [
|
|
{
|
|
""nodes"": [
|
|
0
|
|
]
|
|
}
|
|
],
|
|
""materials"": [
|
|
{
|
|
""pbrMetallicRoughness"": {
|
|
""baseColorFactor"": [
|
|
0.800000011920929,
|
|
0.0,
|
|
0.0,
|
|
1.0
|
|
],
|
|
""metallicFactor"": 0.0
|
|
},
|
|
""name"": ""Red"",
|
|
""extensions"": {
|
|
""KHR_materials_unlit"": {}
|
|
}
|
|
}
|
|
]
|
|
}");
|
|
|
|
var parsed = dst.ParseAsJson();
|
|
|
|
Assert.AreEqual(new string[] { "KHR_materials_unlit" },
|
|
parsed["extensionUsed"].ArrayItems().Select(x => x.GetString()).ToArray());
|
|
}
|
|
|
|
[Test]
|
|
public void Replace_extensionUsed()
|
|
{
|
|
var dst = GltfJsonUtil.FindUsedExtensionsAndUpdateJson(@"{
|
|
""asset"": {
|
|
""generator"": ""COLLADA2GLTF"",
|
|
""version"": ""2.0""
|
|
},
|
|
""scene"": 0,
|
|
""scenes"": [
|
|
{
|
|
""nodes"": [
|
|
0
|
|
]
|
|
}
|
|
],
|
|
""extensionUsed"": [""dummy""],
|
|
""materials"": [
|
|
{
|
|
""pbrMetallicRoughness"": {
|
|
""baseColorFactor"": [
|
|
0.800000011920929,
|
|
0.0,
|
|
0.0,
|
|
1.0
|
|
],
|
|
""metallicFactor"": 0.0
|
|
},
|
|
""name"": ""Red"",
|
|
""extensions"": {
|
|
""KHR_materials_unlit"": {}
|
|
}
|
|
}
|
|
]
|
|
}");
|
|
|
|
var parsed = dst.ParseAsJson();
|
|
|
|
Assert.AreEqual(new string[] { "KHR_materials_unlit" },
|
|
parsed["extensionUsed"].ArrayItems().Select(x => x.GetString()).ToArray());
|
|
}
|
|
|
|
[Test]
|
|
public void Empty_extensionUsed()
|
|
{
|
|
var dst = GltfJsonUtil.FindUsedExtensionsAndUpdateJson(@"{
|
|
""asset"": {
|
|
""generator"": ""COLLADA2GLTF"",
|
|
""version"": ""2.0""
|
|
},
|
|
""scene"": 0,
|
|
""scenes"": [
|
|
{
|
|
""nodes"": [
|
|
0
|
|
]
|
|
}
|
|
],
|
|
""extensionUsed"": [""dummy""] ,
|
|
""materials"": [
|
|
{
|
|
""pbrMetallicRoughness"": {
|
|
""baseColorFactor"": [
|
|
0.800000011920929,
|
|
0.0,
|
|
0.0,
|
|
1.0
|
|
],
|
|
""metallicFactor"": 0.0
|
|
},
|
|
""name"": ""Red""
|
|
}
|
|
]
|
|
}");
|
|
|
|
var parsed = dst.ParseAsJson();
|
|
Assert.False(parsed.ContainsKey("extensionUsed"));
|
|
}
|
|
|
|
[Test]
|
|
public void Empty2_extensionUsed()
|
|
{
|
|
var dst = GltfJsonUtil.FindUsedExtensionsAndUpdateJson(@"{
|
|
""asset"": {
|
|
""generator"": ""COLLADA2GLTF"",
|
|
""version"": ""2.0""
|
|
},
|
|
""scene"": 0,
|
|
""scenes"": [
|
|
{
|
|
""nodes"": [
|
|
0
|
|
]
|
|
}
|
|
],
|
|
""materials"": [
|
|
{
|
|
""pbrMetallicRoughness"": {
|
|
""baseColorFactor"": [
|
|
0.800000011920929,
|
|
0.0,
|
|
0.0,
|
|
1.0
|
|
],
|
|
""metallicFactor"": 0.0
|
|
},
|
|
""name"": ""Red""
|
|
}
|
|
],
|
|
""extensionUsed"": [""dummy""]
|
|
}");
|
|
|
|
var parsed = dst.ParseAsJson();
|
|
Assert.False(parsed.ContainsKey("extensionUsed"));
|
|
}
|
|
|
|
}
|
|
}
|