public void TestOverwriteVersusAppend() { var orig = new WithAndWithoutOverwrite { Append = new[] { 7, 8 }, Overwrite = new[] { 9, 10 } }; var model = TypeModel.Create(); model.AutoCompile = false; model.Add(typeof(WithAndWithoutOverwrite), true); var clone = (WithAndWithoutOverwrite)model.DeepClone(orig); Assert.True(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, Runtime"); Assert.True(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, Runtime"); model.CompileInPlace(); clone = (WithAndWithoutOverwrite)model.DeepClone(orig); Assert.True(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, CompileInPlace"); Assert.True(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, CompileInPlace"); clone = (WithAndWithoutOverwrite)model.Compile("TestOverwriteVersusAppendTypeModel", "TestOverwriteVersusAppend.dll").DeepClone(orig); Assert.True(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, CompileToFile"); Assert.True(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, CompileToFile"); clone = (WithAndWithoutOverwrite)(model.Compile()).DeepClone(orig); Assert.True(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, Compile"); Assert.True(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, Compile"); }
public void TestOverwriteVersusAppend() { var orig = new WithAndWithoutOverwrite { Append = new[] {7,8}, Overwrite = new[] { 9,10}}; var model = TypeModel.Create(); model.AutoCompile = false; model.Add(typeof(WithAndWithoutOverwrite), true); var clone = (WithAndWithoutOverwrite)model.DeepClone(orig); Assert.IsTrue(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, Runtime"); Assert.IsTrue(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, Runtime"); model.CompileInPlace(); clone = (WithAndWithoutOverwrite)model.DeepClone(orig); Assert.IsTrue(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, CompileInPlace"); Assert.IsTrue(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, CompileInPlace"); clone = (WithAndWithoutOverwrite)(model.Compile()).DeepClone(orig); Assert.IsTrue(clone.Overwrite.SequenceEqual(new[] { 9, 10 }), "Overwrite, Compile"); Assert.IsTrue(clone.Append.SequenceEqual(new[] { 1, 2, 3, 7, 8 }), "Append, Compile"); }