2025-03-11 15:30:07 +08:00

62 lines
2.4 KiB
C#

// ***********************************************************************
// Copyright (c) 2017 Unity Technologies. All rights reserved.
//
// Licensed under the ##LICENSENAME##.
// See LICENSE.md file in the project root for full license information.
// ***********************************************************************
using NUnit.Framework;
using System.Collections;
using Autodesk.Fbx;
namespace Autodesk.Fbx.UnitTests
{
internal class FbxCollectionTest : Base<FbxCollection>
{
public static void GenericTests<T>(T fbxCollection, FbxManager manager) where T : FbxCollection
{
// TODO: FbxScene has a member count of 3 instead of one (even after clearing), is this normal?
int initialMemberCount = fbxCollection.GetMemberCount ();
// test AddMember
FbxObject obj = FbxObject.Create (manager, "");
bool result = fbxCollection.AddMember (obj);
Assert.IsTrue (result);
Assert.AreEqual(initialMemberCount+1, fbxCollection.GetMemberCount());
// test Clear
fbxCollection.Clear ();
Assert.AreEqual (initialMemberCount, fbxCollection.GetMemberCount());
// test IsMember, GetMember, RemoveMember
FbxObject obj2 = FbxObject.Create (manager, "");
fbxCollection.AddMember (obj2);
Assert.AreEqual (true, fbxCollection.IsMember (obj2));
Assert.AreEqual (obj2, fbxCollection.GetMember (initialMemberCount));
Assert.That(fbxCollection.GetMember(), Is.Not.Null);
fbxCollection.RemoveMember (obj2);
Assert.AreEqual (false, fbxCollection.IsMember (obj2));
Assert.AreEqual (initialMemberCount, fbxCollection.GetMemberCount());
// test GetAnimLayerMember()
fbxCollection.AddMember(FbxAnimLayer.Create(manager, "animLayer"));
var animLayer = fbxCollection.GetAnimLayerMember ();
Assert.IsInstanceOf<FbxAnimLayer> (animLayer);
var animLayer2 = fbxCollection.GetAnimLayerMember (0);
Assert.AreEqual (animLayer, animLayer2);
// check invalid
Assert.IsNull(fbxCollection.GetAnimLayerMember (1));
Assert.IsNull(fbxCollection.GetAnimLayerMember (-1));
}
[Test]
public void TestBasics ()
{
GenericTests (CreateObject ("fbx collection"), Manager);
}
}
}