Example #1
0
        internal void AddSinkManager(SinkManager manager)
        {
            lock (_managers)
            {
                _managers.Add(manager);

                foreach (var tagger in _taggers.Values)
                {
                    manager.AddFactory(tagger.Factory);
                }
            }
        }
        public void CallsToSink_AddFactory_CriticalException_NotSuppressed()
        {
            // Arrange
            var mockRegister = new Mock <ISinkManagerRegister>();
            var mockSink     = new Mock <ITableDataSink>();

            var sinkManager = new SinkManager(mockRegister.Object, mockSink.Object);

            mockSink.Setup(x => x.AddFactory(It.IsAny <ITableEntriesSnapshotFactory>(), false))
            .Throws(new StackOverflowException("add factory custom error"));

            // Act & assert
            Action act = () => sinkManager.AddFactory(CreateSnapshotFactory());

            act.Should().ThrowExactly <StackOverflowException>().And.Message.Should().Be("add factory custom error");
        }
        public void CallsToSink_AddFactory_NonCriticalException_Suppressed()
        {
            // Arrange
            var mockRegister = new Mock <ISinkManagerRegister>();
            var mockSink     = new Mock <ITableDataSink>();

            var sinkManager = new SinkManager(mockRegister.Object, mockSink.Object);

            mockSink.Setup(x => x.AddFactory(It.IsAny <ITableEntriesSnapshotFactory>(), false))
            .Throws(new InvalidCastException("add factory custom error"));

            // Act
            sinkManager.AddFactory(CreateSnapshotFactory());

            // Assert
            mockSink.Verify(x => x.AddFactory(It.IsAny <ITableEntriesSnapshotFactory>(), false), Times.Once);
        }