public void ThrowExceptionOnCmisConnectionExceptionOccurence()
        {
            var localDetection  = new Mock <ISituationDetection <AbstractFolderEvent> >();
            var remoteDetection = new Mock <ISituationDetection <AbstractFolderEvent> >();
            int numberOfSolver  = Enum.GetNames(typeof(SituationType)).Length;

            ISolver[,] solver = new ISolver[numberOfSolver, numberOfSolver];
            var interactionNeededProducer = new Mock <ISolver>();
            var exception = new CmisConnectionException("reason");

            interactionNeededProducer.Setup(
                r =>
                r.Solve(
                    It.IsAny <IFileSystemInfo>(),
                    It.IsAny <IObjectId>(),
                    It.IsAny <ContentChangeType>(),
                    It.IsAny <ContentChangeType>())).Throws(exception);
            solver[(int)SituationType.NOCHANGE, (int)SituationType.NOCHANGE] = interactionNeededProducer.Object;
            var mechanism = this.CreateMechanism(localDetection.Object, remoteDetection.Object, solver);

            localDetection.Setup(d => d.Analyse(this.storage.Object, It.IsAny <AbstractFolderEvent>())).Returns(SituationType.NOCHANGE);
            remoteDetection.Setup(d => d.Analyse(this.storage.Object, It.IsAny <AbstractFolderEvent>())).Returns(SituationType.NOCHANGE);
            var folderEvent = new FolderEvent(Mock.Of <IDirectoryInfo>(), Mock.Of <IFolder>())
            {
                Local = MetaDataChangeType.NONE, Remote = MetaDataChangeType.NONE
            };

            Assert.Throws <CmisConnectionException>(() => mechanism.Handle(folderEvent));

            this.queue.VerifyThatNoEventIsAdded();
        }
Exemple #2
0
        public void PutConnectionEventToQueueIfConnectionExceptionOccursOnHandling()
        {
            var manager = new Mock <ISyncEventManager>();
            var connectionRequiredEvent = Mock.Of <ISyncEvent>();
            var connectionException     = new CmisConnectionException("unknown host");

            manager.Setup(m => m.Handle(connectionRequiredEvent)).Throws(connectionException);
            using (var underTest = new SyncEventQueue(manager.Object)) {
                var observer = new Mock <IObserver <int> >();
                observer.Setup(o => o.OnNext(It.Is <int>(i => i == 0))).Callback(() => {
                    underTest.StopListener();
                });
                using (var unsubscriber = underTest.FullCounter.Subscribe(observer.Object)) {
                    underTest.AddEvent(connectionRequiredEvent);
                    Assert.That(underTest.WaitForStopped(10000), Is.True);
                }
            }

            manager.Verify(m => m.Handle(It.Is <CmisConnectionExceptionEvent>(e => e.Exception == connectionException)), Times.Once());
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CmisSync.Lib.Events.CmisConnectionExceptionEvent"/> class.
 /// The OccuredAt property will be set automatically to the actual time when the constructor is called.
 /// </summary>
 /// <param name="connectionException">Connection exception.</param>
 public CmisConnectionExceptionEvent(CmisConnectionException connectionException) : base(connectionException)
 {
     this.OccuredAt = DateTime.Now;
 }