using UnitTestSharp; namespace Vellum.UnitTests { public class LoadKeyTests : TestFixture { public class CtorTests : TestFixture { public void KeepsTheNodeAndTheType() { SaveNode node = SaveNode.NewTable(); var key = new LoadKey(node, typeof(Bead)); CheckTrue(ReferenceEquals(node, key.Node)); CheckEqual(typeof(Bead), key.Type); } } public class EqualsTests : TestFixture { public void SameNodeAndType_AreEqual() { SaveNode node = SaveNode.NewTable(); CheckTrue(new LoadKey(node, typeof(Bead)).Equals(new LoadKey(node, typeof(Bead)))); } public void NodesThatLookTheSame_AreDifferentKeys() { CheckFalse(new LoadKey(SaveNode.NewTable(), typeof(Bead)).Equals( new LoadKey(SaveNode.NewTable(), typeof(Bead)))); } public void DifferentTypes_AreDifferentKeys() { SaveNode node = SaveNode.NewTable(); CheckFalse(new LoadKey(node, typeof(Bead)).Equals(new LoadKey(node, typeof(Link)))); } public void BoxedKey_IsComparedAsAKey() { SaveNode node = SaveNode.NewTable(); CheckTrue(new LoadKey(node, typeof(Bead)).Equals((object)new LoadKey(node, typeof(Bead)))); } public void ObjectThatIsNotAKey_IsNotEqual() { CheckFalse(new LoadKey(SaveNode.NewTable(), typeof(Bead)).Equals("key")); } public void Null_IsNotEqual() { CheckFalse(new LoadKey(SaveNode.NewTable(), typeof(Bead)).Equals(null)); } } public class GetHashCodeTests : TestFixture { public void EqualKeys_HaveOneHashCode() { SaveNode node = SaveNode.NewTable(); var first = new LoadKey(node, typeof(Bead)); var second = new LoadKey(node, typeof(Bead)); CheckEqual(first.GetHashCode(), second.GetHashCode()); } } } }