Пример #1
0
 public ItemMatchPipelinePlumber(
     ISynchSourcesConfig <T1, T2, TId> sourceConfig,
     IList <ISynchronizationResolver <ItemMatch <T1, T2> > > synchronizationResolvers,
     Func <IEnumerable <T1>, IEnumerable <T2>, IEnumerable <ItemMatch <T1, T2> > > preprocessor)
 {
     _preprocessor   = preprocessor;
     _resolutionStep = new ChangeResolutionStep <ItemMatch <T1, T2>, ISynchSourcesConfig <T1, T2, TId> >(synchronizationResolvers, sourceConfig);
     _dispatchStep   = new ChangeDispatchingStep <ItemMatch <T1, T2> >();
 }
        public void SetUpTest()
        {
            _shouldResolve = false;
            _testSynchronizationResolver = new SynchronizationResolver <LocalTestResource, string>(
                "bogus config",
                (item, cfg) => _shouldResolve,
                (item, cfg) =>
            {
                _isResolved = true;
                return(new SynchronizationResult(true));
            });

            var changeResolvers = new List <ISynchronizationResolver <LocalTestResource> >
            {
                _testSynchronizationResolver
            };

            _resolutionStepUnderTest = new ChangeResolutionStep <LocalTestResource, string>(
                changeResolvers, "bogus config");
        }
        public void SetUpTest()
        {
            _shouldResolve = false;
            _testSynchronizationResolver = new SynchronizationResolver<LocalTestResource, string>(
                "bogus config",
                (item, cfg) => _shouldResolve,
                (item, cfg) =>
                {
                    _isResolved = true;
                    return new SynchronizationResult(true);
                });

            var changeResolvers = new List<ISynchronizationResolver<LocalTestResource>>
            {
                _testSynchronizationResolver
            };

            _resolutionStepUnderTest = new ChangeResolutionStep<LocalTestResource, string>(
                changeResolvers, "bogus config");
        }
        public void ShouldWrapExceptionIntoChangeResolutionException()
        {
            var exception = new Exception("Whatever resolution error");

            _testSynchronizationResolver = new SynchronizationResolver <LocalTestResource, string>(
                "bogus config",
                (item, cfg) =>
            {
                throw exception;
            },
                (item, cfg) =>
            {
                _isResolved = true;
                return(new SynchronizationResult(true));
            });

            var changeResolvers = new List <ISynchronizationResolver <LocalTestResource> >
            {
                _testSynchronizationResolver
            };

            _resolutionStepUnderTest = new ChangeResolutionStep <LocalTestResource, string>(
                changeResolvers, "bogus config");

            var localTestResource = new LocalTestResource(1);

            try
            {
                _resolutionStepUnderTest.Resolve(localTestResource);
                Assert.Fail("Expecting ChangeResolutionException");
            }
            catch (ChangeResolutionException ex)
            {
                Assert.AreEqual("Failed to resolve change for LocalTestResource - 1", ex.Message);
                Assert.AreEqual(exception, ex.InnerException);
                Assert.AreEqual(localTestResource, ex.Item);
            }
        }
Пример #5
0
        public OneWayPullChannel(
            [NotNull] IChannelConfiguration <T1, T2, TId, TSynch> channelConfig,
            [NotNull] Func <Task <IEnumerable <T1> > > t1DataSource,
            [NotNull] Func <Task <IEnumerable <T2> > > t2DataSource)
        {
            if (channelConfig == null)
            {
                throw new ArgumentNullException(nameof(channelConfig));
            }
            if (t1DataSource == null)
            {
                throw new ArgumentNullException(nameof(t1DataSource));
            }
            if (t2DataSource == null)
            {
                throw new ArgumentNullException(nameof(t2DataSource));
            }

            _channelConfig  = channelConfig;
            _t1DataSource   = t1DataSource;
            _t2DataSource   = t2DataSource;
            _resolutionStep = new ChangeResolutionStep <TSynch, IChannelConfiguration <T1, T2, TId, TSynch> >(channelConfig.SynchronizationResolvers.ToList(), channelConfig);
        }
        public void ShouldWrapExceptionIntoChangeResolutionException()
        {
            var exception = new Exception("Whatever resolution error");
            _testSynchronizationResolver = new SynchronizationResolver<LocalTestResource, string>(
                "bogus config",
                (item, cfg) =>
                {
                    throw exception;
                },
                (item, cfg) =>
                {
                    _isResolved = true;
                    return new SynchronizationResult(true);
                });

            var changeResolvers = new List<ISynchronizationResolver<LocalTestResource>>
            {
                _testSynchronizationResolver
            };

            _resolutionStepUnderTest = new ChangeResolutionStep<LocalTestResource, string>(
                changeResolvers, "bogus config");

            var localTestResource = new LocalTestResource(1);
            try
            {
                _resolutionStepUnderTest.Resolve(localTestResource);
                Assert.Fail("Expecting ChangeResolutionException");
            }
            catch(ChangeResolutionException ex)
            {
                Assert.AreEqual("Failed to resolve change for LocalTestResource - 1", ex.Message);
                Assert.AreEqual(exception, ex.InnerException);
                Assert.AreEqual(localTestResource, ex.Item);
            }
        }