public void SourceHasCtor_SourceIsReplicated_CtorWasNotCalledDuringReplication() { CommonReplicationStrategy replicator = ReplicatorFor <ClassWithCtor>(); var result = replicator.Replicate(new ClassWithCtor(), dummyContext).As <ClassWithCtor>(); Assert.That(result.CtorWasCalled, Is.False); }
public void SourceHasFieldMarkedForCopy_SourceIsReplicated_FieldWasCopied() { IMetadataProvider metadataProvider = MetadataProviderFor <ClassWithField>( member: x => x.field, returnsBehavior: ReplicationBehavior.Copy); CommonReplicationStrategy replicator = ReplicatorFor <ClassWithField>(metadataProvider); var source = new ClassWithField { field = new Class() }; var result = replicator.Replicate(source, dummyContext).As <ClassWithField>(); Assert.That(result.field, Is.SameAs(source.field)); }
public void SourceHasFieldMarkedForReplication_SourceIsReplicated_FieldWasReplicated() { var sourceField = new Class(); var resultField = new Class(); IMetadataProvider metadataProvider = MetadataProviderFor <ClassWithField>(x => x.field, ReplicationBehavior.DeepCopy); CommonReplicationStrategy replicator = ReplicatorFor <ClassWithField>(metadataProvider); IReplicationContext context = ReplicationContextThat(onReceiving: sourceField, returns: resultField); var source = new ClassWithField { field = sourceField }; var result = replicator.Replicate(source, context).As <ClassWithField>(); Assert.That(result.field, Is.SameAs(resultField)); }
public void SourceIsValueType_SourceIsReplicated_FieldWasReplicated() { DateTime sourceField = DateTime.Today; DateTime resultField = DateTime.Today.AddDays(1); IMetadataProvider metadataProvider = MetadataProviderFor <Struct>(x => x.field, ReplicationBehavior.DeepCopy); CommonReplicationStrategy replicator = ReplicatorFor <Struct>(metadataProvider); IReplicationContext context = ReplicationContextThat(onReceiving: sourceField, returns: resultField); var source = new Struct { field = sourceField }; var result = replicator.Replicate(source, context).As <Struct>(); Assert.That(result.field, Is.EqualTo(resultField)); }
public void ReplicatorForBaseType_ReceivesInheritedType_Exception() { CommonReplicationStrategy replicator = ReplicatorFor <Class>(); Assert.Throws <ArgumentException>(() => replicator.Replicate(new InheritedClass(), dummyContext)); }