Exemplo n.º 1
0
        public void Clone_gets_column_clones_from_cache()
        {
            var column0          = new Column("Foo", typeof(int));
            var column1          = new Column("Bar", typeof(int));
            var uniqueConstraint = new UniqueConstraint("PK", new[] { column0, column1 });

            var cloneContext = new CloneContext();
            var columnClone0 = column0.Clone(cloneContext);
            var columnClone1 = column1.Clone(cloneContext);
            var clone        = uniqueConstraint.Clone(cloneContext);

            Assert.NotSame(uniqueConstraint, clone);
            Assert.Equal(2, clone.Columns.Count);
            Assert.Same(columnClone0, clone.Columns[0]);
            Assert.Same(columnClone1, clone.Columns[1]);
        }
Exemplo n.º 2
0
        public void Clone_replicates_instance_and_adds_column_clones_to_cache()
        {
            var column0          = new Column("Foo", typeof(int));
            var column1          = new Column("Bar", typeof(int));
            var uniqueConstraint = new UniqueConstraint("PK", new[] { column0, column1 });

            var cloneContext = new CloneContext();
            var clone        = uniqueConstraint.Clone(cloneContext);

            Assert.NotSame(uniqueConstraint, clone);
            Assert.Equal("PK", clone.Name);
            Assert.Equal(2, clone.Columns.Count);
            Assert.NotSame(column0, clone.Columns[0]);
            Assert.NotSame(column1, clone.Columns[1]);
            Assert.Equal("Foo", clone.Columns[0].Name);
            Assert.Equal("Bar", clone.Columns[1].Name);

            Assert.Same(clone.Columns[0], cloneContext.GetOrAdd(column0, () => null));
            Assert.Same(clone.Columns[1], cloneContext.GetOrAdd(column1, () => null));
        }