JD2022-TU1/main/tools/apps/TRec/Tests/TapeTests.cs

59 lines
No EOL
1.9 KiB
C#

using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using JD.Timeline.Model;
using NUnit.Framework;
using JD.Serialization;
namespace TRecTests
{
[TestFixture]
public class TapeTests
{
[Test]
public void Test_pointers_are_restored_after_a_serialization()
{
var tape = new Tape();
tape.Tracks.Add(new TapeTrack { Id = 12, Name = "MyTrack" });
tape.Clips.Add(new AlphaClip { ActorName = "ThisName" });
var serialized = ReadWrite(tape);
Assert.AreEqual(serialized, serialized.Clips[0].Tape);
Assert.AreEqual(serialized, serialized.Tracks[0].Tape);
}
[Test]
public void Test_curves_are_added_to_their_curve_collection()
{
var translationClip = new TranslationClip();
Assert.That(translationClip.Curves.Contains(translationClip.CurveX));
Assert.That(translationClip.Curves.Contains(translationClip.CurveY));
Assert.That(translationClip.Curves.Contains(translationClip.CurveZ));
}
[Test]
public void Test_curves_in_the_curve_collection_are_valid_after_deserializing_a_modified_curve()
{
// The Serializer creates a new curve, we have to make sure the curve collection uses this new curve.
var translationClip = new TranslationClip();
translationClip.CurveX.Keys.Add(new KeyFloat());
translationClip = ReadWrite(translationClip);
Assert.That(translationClip.Curves.Contains(translationClip.CurveX));
}
private T ReadWrite<T>(T value)
where T : new()
{
LuaSerializer serializer = new LuaSerializer();
var content = serializer.Serialize(value);
var result = new T();
serializer.Deserialize(content, result);
return result;
}
}
}