using UnitTestSharp; namespace Vellum.Generator.UnitTests { public class MemberShapeTests : TestFixture { public class CtorTests : TestFixture { public void KeepsTheKeyAndTheType() { var member = new MemberShape("Count", "int"); CheckEqual("Count", member.Key); CheckEqual("int", member.TypeName); } public void WithoutSayingMore_AssignsDirectly() { CheckTrue(new MemberShape("Count", "int").AssignsDirectly); } public void KeepsWhetherTheMemberCanBeAssigned() { CheckFalse(new MemberShape("Count", "int", assignsDirectly: false).AssignsDirectly); CheckTrue(new MemberShape("Count", "int", assignsDirectly: true).AssignsDirectly); } } public class OnTests : TestFixture { public void ReadsTheMemberThroughTheInstance() { CheckEqual("value.Count", new MemberShape("Count", "int").On("value")); } public void KeywordName_GetsAnAt() { CheckEqual("this.@event", new MemberShape("event", "int").On("this")); } } public class EqualsTests : TestFixture { public void SameValues_AreEqual() { CheckTrue(new MemberShape("Count", "int").Equals(new MemberShape("Count", "int"))); CheckTrue(new MemberShape("Count", "int").Equals((object)new MemberShape("Count", "int"))); } public void Null_IsNotEqual() { CheckFalse(new MemberShape("Count", "int").Equals((MemberShape)null)); CheckFalse(new MemberShape("Count", "int").Equals((object)null)); } public void OtherType_IsNotEqual() { CheckFalse(new MemberShape("Count", "int").Equals("Count")); } public void DifferentKey_IsNotEqual() { CheckFalse(new MemberShape("Count", "int").Equals(new MemberShape("Total", "int"))); } public void DifferentType_IsNotEqual() { CheckFalse(new MemberShape("Count", "int").Equals(new MemberShape("Count", "long"))); } public void DifferentAssignability_IsNotEqual() { CheckFalse(new MemberShape("Count", "int", assignsDirectly: true).Equals( new MemberShape("Count", "int", assignsDirectly: false))); } } public class GetHashCodeTests : TestFixture { public void EqualMembers_HaveEqualHashCodes() { CheckEqual(new MemberShape("Count", "int").GetHashCode(), new MemberShape("Count", "int").GetHashCode()); } } } }