public void DefaultValues()
        {
            var sut = new UsingBlock();

            Assert.AreEqual(new VariableReference(), sut.Reference);
            Assert.AreEqual(Lists.NewList <IStatement>(), sut.Body);
            Assert.AreNotEqual(0, sut.GetHashCode());
            Assert.AreNotEqual(1, sut.GetHashCode());
        }
        public void Equality_Default()
        {
            var a = new UsingBlock();
            var b = new UsingBlock();

            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_DifferentBody()
        {
            var a = new UsingBlock();

            a.Body.Add(new ContinueStatement());
            var b = new UsingBlock();

            b.Body.Add(new GotoStatement());
            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_DifferentReference()
        {
            var a = new UsingBlock {
                Reference = SomeVarRef("a")
            };
            var b = new UsingBlock {
                Reference = SomeVarRef("b")
            };

            Assert.AreNotEqual(a, b);
            Assert.AreNotEqual(a.GetHashCode(), b.GetHashCode());
        }
        public void Equality_ReallyTheSame()
        {
            var a = new UsingBlock {
                Reference = SomeVarRef("b")
            };

            a.Body.Add(new ReturnStatement());
            var b = new UsingBlock {
                Reference = SomeVarRef("b")
            };

            b.Body.Add(new ReturnStatement());
            Assert.AreEqual(a, b);
            Assert.AreEqual(a.GetHashCode(), b.GetHashCode());
        }