public void Detach_Success()
        {
            // arrange
            int callCount = 0;
            Mock <IAttachment> attachment = new Mock <IAttachment>();
            Mock <ITelemetryAttachmentTransmitter> transmitter = new Mock <ITelemetryAttachmentTransmitter>();

            transmitter
            .Setup(t => t.Enqueue(It.IsAny <AttachmentDescriptor>()))
            .Callback(() => Interlocked.Increment(ref callCount));

            HashSet <ITelemetryAttachmentTransmitter> transmitters = new HashSet <ITelemetryAttachmentTransmitter>
            {
                transmitter.Object
            };
            AttachmentDispatcher dispatcher = new AttachmentDispatcher(transmitters);

            // act
            dispatcher.Detach(transmitter.Object);

            // assert
            dispatcher.Dispatch(attachment.Object);

            Assert.Equal(0, callCount);
        }
        public void Detach_TransmitterNull()
        {
            // arrange
            ITelemetryAttachmentTransmitter           transmitter  = null;
            HashSet <ITelemetryAttachmentTransmitter> transmitters = new HashSet <ITelemetryAttachmentTransmitter>();
            AttachmentDispatcher dispatcher = new AttachmentDispatcher(transmitters);

            // act
            Action validate = () => dispatcher.Detach(transmitter);

            // assert
            Assert.Throws <ArgumentNullException>("transmitter", validate);
        }