public void InitializeIntArray()
        {
            var instance = new[] { 0, 1, 2 };
            var reference = new[] { 3, 4, 5, 6, 7, 8, 9 };

            Initializer<int[]>.Default.Initialize(ref instance, reference);

            Assert.That(instance, !Is.SameAs(reference));
            Assert.That(instance.Length, Is.EqualTo(reference.Length));
            Assert.That(instance.ContentEquals(reference));
        }
        public void InitializeReferenceArray()
        {
            var instance = new[]
            {
                default(DummyReference),
                default(DummyReference),
                default(DummyReference),
                default(DummyReference),
                default(DummyReference),
            };
            var reference = new[]
            {
                new DummyReference{ Value = 1 },
                new DummyReference{ Value = 2, SubReference = new SubDummyReference() },
                new DummyReference{ Value = 3, SubReference = new SubDummyReference { Value = "A" } }
            };

            Initializer<DummyReference[]>.Default.Initialize(ref instance, reference);

            Assert.That(instance, !Is.SameAs(reference));
            Assert.That(instance.Length, Is.EqualTo(reference.Length));
            Assert.That(!instance.Contains(null));
            Assert.That(instance.ContentEquals(reference, (a, b) =>
                a.Value == b.Value &&
                (a.SubReference == b.SubReference || a.SubReference.Value == b.SubReference.Value)));
        }
        public void InitializeValueArray()
        {
            var instance = new[]
            {
                default(DummyValue),
                default(DummyValue),
                default(DummyValue),
                default(DummyValue),
                default(DummyValue),
            };
            var reference = new[]
            {
                new DummyValue { Value = 1 },
                new DummyValue { Value = 2, SubValue = new SubDummyValue() },
                new DummyValue { Value = 3, SubValue = new SubDummyValue { Value = "A" } }
            };

            Initializer<DummyValue[]>.Default.Initialize(ref instance, reference);

            Assert.That(instance, !Is.SameAs(reference));
            Assert.That(instance.Length, Is.EqualTo(reference.Length));
            Assert.That(instance.ContentEquals(reference));
        }
        public void InitializeStringArray()
        {
            var instance = new[] { "A", "B", "C" };
            var reference = new[] { "D", "E" };

            Initializer<string[]>.Default.Initialize(ref instance, reference);

            Assert.That(instance, !Is.SameAs(reference));
            Assert.That(instance.Length, Is.EqualTo(reference.Length));
            Assert.That(instance.ContentEquals(reference));
        }