public void FixtureSetup()
        {
            this.obj1 = new CloneableClass(1);
            this.obj2 = new CloneableClass(2);
            this.obj3 = new CloneableClass(3);

            this.originals = new CloneableClass[] { obj1, obj2, obj3 };

            this.uut = new CloningReadOnlyList <CloneableClass>(c => { return(c.Clone()); }, originals);
        }
        public void ForEachTest()
        {
            int index = 0;

            CloneableClass[] originals = new CloneableClass[] { obj1, obj2, obj3 };

            foreach (CloneableClass c in this.uut)
            {
                Assert.AreEqual(originals[index].Value, c.Value);
                Assert.AreNotSame(originals[index], c);
                ++index;
            }
        }