示例#1
0
 public void Test()
 {
     AnOptionClass a = new AnOptionClass() { AnInt = 5, AString = "Test" };
     AnOptionClass b = a.Clone() as AnOptionClass;
     Assert.That(b, Is.TypeOf(a.GetType()));
     Assert.That(a.AnInt, Is.EqualTo(b.AnInt));
     Assert.That(a.AString, Is.EqualTo(b.AString));
 }
示例#2
0
 public void TestMoreComplexClass()
 {
     AnOptionClass a = new AnOptionClass() { AnInt = 5, AString = "Test" };
     AnotherOptionClass c = new AnotherOptionClass(15.5) { PublicInt = 15, PublicString = "15", MoreOptions = a };
     AnotherOptionClass b = c.Clone() as AnotherOptionClass;
     Assert.That(b, Is.TypeOf(c.GetType()));
     Assert.That(b.PublicInt, Is.EqualTo(c.PublicInt));
     Assert.That(b.PublicString, Is.EqualTo(c.PublicString));
     Assert.That(a.AnInt, Is.EqualTo(b.MoreOptions.AnInt));
     Assert.That(a.AString, Is.EqualTo(b.MoreOptions.AString));
     Assert.That(b.PrivateVal, Is.Not.EqualTo(c.PrivateVal));
 }
示例#3
0
        public void Test()
        {
            AnOptionClass a = new AnOptionClass()
            {
                AnInt = 5, AString = "Test"
            };
            AnOptionClass b = a.Clone() as AnOptionClass;

            Assert.That(b, Is.TypeOf(a.GetType()));
            Assert.That(a.AnInt, Is.EqualTo(b.AnInt));
            Assert.That(a.AString, Is.EqualTo(b.AString));
        }
示例#4
0
 public void TestComplexClassAfterChange()
 {
     AnOptionClass a = new AnOptionClass() { AnInt = 5, AString = "Test" };
     AnotherOptionClass c = new AnotherOptionClass(15.5) { PublicInt = 15, PublicString = "15", MoreOptions = a };
     AnotherOptionClass b = c.Clone() as AnotherOptionClass;
     a.AnInt--;
     a.AString = "different now!";
     c.PublicInt--;
     c.PublicString = "public but different";
     Assert.That(b, Is.TypeOf(c.GetType()));
     Assert.That(b.PublicInt, Is.Not.EqualTo(c.PublicInt));
     Assert.That(b.PublicString, Is.Not.EqualTo(c.PublicString));
     Assert.That(a.AnInt, Is.Not.EqualTo(b.MoreOptions.AnInt));
     Assert.That(a.AString, Is.Not.EqualTo(b.MoreOptions.AString));
 }
示例#5
0
        // override object.Equals
        public override bool Equals(object obj)
        {
            if (obj == null || GetType() != obj.GetType())
            {
                return(false);
            }
            AnOptionClass a = obj as AnOptionClass;

            if (a.AnInt != this.AnInt)
            {
                return(false);
            }
            if (!a.AString.Equals(this.AString))
            {
                return(false);
            }
            return(true);
        }
示例#6
0
        public void TestMoreComplexClass()
        {
            AnOptionClass a = new AnOptionClass()
            {
                AnInt = 5, AString = "Test"
            };
            AnotherOptionClass c = new AnotherOptionClass(15.5)
            {
                PublicInt = 15, PublicString = "15", MoreOptions = a
            };
            AnotherOptionClass b = c.Clone() as AnotherOptionClass;

            Assert.That(b, Is.TypeOf(c.GetType()));
            Assert.That(b.PublicInt, Is.EqualTo(c.PublicInt));
            Assert.That(b.PublicString, Is.EqualTo(c.PublicString));
            Assert.That(a.AnInt, Is.EqualTo(b.MoreOptions.AnInt));
            Assert.That(a.AString, Is.EqualTo(b.MoreOptions.AString));
            Assert.That(b.PrivateVal, Is.Not.EqualTo(c.PrivateVal));
        }
示例#7
0
        public void TestComplexClassAfterChange()
        {
            AnOptionClass a = new AnOptionClass()
            {
                AnInt = 5, AString = "Test"
            };
            AnotherOptionClass c = new AnotherOptionClass(15.5)
            {
                PublicInt = 15, PublicString = "15", MoreOptions = a
            };
            AnotherOptionClass b = c.Clone() as AnotherOptionClass;

            a.AnInt--;
            a.AString = "different now!";
            c.PublicInt--;
            c.PublicString = "public but different";
            Assert.That(b, Is.TypeOf(c.GetType()));
            Assert.That(b.PublicInt, Is.Not.EqualTo(c.PublicInt));
            Assert.That(b.PublicString, Is.Not.EqualTo(c.PublicString));
            Assert.That(a.AnInt, Is.Not.EqualTo(b.MoreOptions.AnInt));
            Assert.That(a.AString, Is.Not.EqualTo(b.MoreOptions.AString));
        }
示例#8
0
 // override object.GetHashCode
 public override int GetHashCode()
 {
     return(PublicInt.GetHashCode() ^ AnOptionClass.NullableHashCode(PublicString) ^ AnOptionClass.NullableHashCode(MoreOptions));
 }