public void SourceIsArrayOfCopiedTypes_CopyArrayStrategyReturned()
        {
            ReplicationStrategyFactory strategyFactory = StrategyForArrayOf <Class>(whereElementsAreMarkedAs: ReplicationBehavior.Copy);

            IReplicationStrategy result = strategyFactory.StrategyForType(typeof(Class[]));

            Assert.That(result, Is.InstanceOf <CopyArrayReplicationStrategy>());
        }
        public void TypeIsMarkedAsIgnored_IgnoringStrategyReturned()
        {
            ReplicationStrategyFactory strategyFactory = StrategyWhere <Class>(isMarkedAs: ReplicationBehavior.Ignore);

            IReplicationStrategy result = strategyFactory.StrategyForType(typeof(Class));

            Assert.That(result, Is.InstanceOf <IgnoringReplicationStrategy>());
        }
        public void SourceIsMarkedAsReplicate_CommonStrategyReturned()
        {
            ReplicationStrategyFactory strategyFactory = StrategyWhere <Class>(isMarkedAs: ReplicationBehavior.DeepCopy);

            IReplicationStrategy result = strategyFactory.StrategyForType(typeof(Class));

            Assert.That(result, Is.InstanceOf <CommonReplicationStrategy>());
        }
        public void GetStrategyTwiceForTheSameType_SameStrategiesReturned()
        {
            ReplicationStrategyFactory strategyFactory = StrategyWhere <Class>(isMarkedAs: ReplicationBehavior.DeepCopy);

            IReplicationStrategy result1 = strategyFactory.StrategyForType(typeof(Class));
            IReplicationStrategy result2 = strategyFactory.StrategyForType(typeof(Class));

            Assert.That(result2, Is.SameAs(result1));
        }
Esempio n. 5
0
 /// <summary>
 /// Build instance of <see cref="ObjectReplicator"/>.
 /// </summary>
 public ObjectReplicator(IMetadataProvider metadataProvider)
 {
     Guard.AgainstNull(metadataProvider, "metadataProvider");
     replicationStrategyFactory = new ReplicationStrategyFactory(metadataProvider);
 }