Beispiel #1
0
        public void WorkflowTest()
        {
            var service  = new InstanceStoredNotificationService(_logger.Object, _cleanupQueue.Object);
            var observer = new Mock <IObserver <InstanceStorageInfo> >();

            observer.Setup(p => p.OnNext(It.IsAny <InstanceStorageInfo>()));

            var cancel   = service.Subscribe(observer.Object);
            var instance = InstanceGenerator.GenerateInstance("/storage", "AET");

            service.NewInstanceStored(instance);
            service.NewInstanceStored(instance);
            service.NewInstanceStored(instance);

            observer.Verify(p => p.OnNext(It.IsAny <InstanceStorageInfo>()), Times.Exactly(3));

            cancel.Dispose();
            observer.Reset();
            service.NewInstanceStored(instance);
            observer.Verify(p => p.OnNext(It.IsAny <InstanceStorageInfo>()), Times.Never());
        }
        public void NewInstanceStored_NoSupportedObservers()
        {
            var instance = InstanceGenerator.GenerateInstance("/storage", "AET");

            _cleanupQueue.Setup(p => p.QueueInstance(It.IsAny <string>()));

            var service  = new InstanceStoredNotificationService(_logger.Object, _cleanupQueue.Object);
            var observer = new Mock <IObserver <InstanceStorageInfo> >();

            observer.Setup(p => p.OnNext(It.IsAny <InstanceStorageInfo>())).Throws(new InstanceNotSupportedException(instance));

            var cancel = service.Subscribe(observer.Object);

            service.NewInstanceStored(instance);

            observer.Verify(p => p.OnNext(It.IsAny <InstanceStorageInfo>()), Times.Once());
            _cleanupQueue.Verify(p => p.QueueInstance(instance.InstanceStorageFullPath), Times.Once());

            cancel.Dispose();
            observer.Reset();
            service.NewInstanceStored(instance);
            observer.Verify(p => p.OnNext(It.IsAny <InstanceStorageInfo>()), Times.Never());
        }