public void SourceContainsNullableFields_CanBeReplicated() { var source = new ClassWithNullables { field1 = null, field2 = new Struct { field1 = "some string", field2 = new Class() } }; ClassWithNullables result = objectReplicator.Replicate(source); Assert.That(result.field1, Is.Null); Assert.That(result.field2, Is.Not.Null); Assert.That(result.field2.Value.field1, Is.SameAs(source.field2.Value.field1)); Assert.That(result.field2.Value.field2, Is.Not.SameAs(source.field2.Value.field2)); }
public void SourceIsReplicatedTwice_SecondReplicationIsFaster() { var source = new ClassWithNullables { field2 = new Struct { field2 = new Class() } }; var stopwatch = new Stopwatch(); objectReplicator.Replicate(DateTime.Today); objectReplicator.Replicate(DateTime.Today); stopwatch.Start(); objectReplicator.Replicate(source); var firstTime = stopwatch.ElapsedTicks; stopwatch.Restart(); objectReplicator.Replicate(source); var secondTime = stopwatch.ElapsedTicks; stopwatch.Stop(); Console.Write(firstTime + "\n" + secondTime); Assert.That(secondTime, Is.LessThan(firstTime / 10)); }