public void CorrectlyResolveByName(string name, Type type)
        {
            var fromGet         = _namedResolver.Get(name);
            var itemFound       = _namedResolver.TryGet(out var fromTryGet, name);
            var fromIndexer     = _namedResolver[name];
            var fromGetRequired = _namedResolver.GetRequired(name);

            Assert.Multiple(() =>
            {
                Assert.IsNotNull(fromGet);
                Assert.IsNotNull(fromTryGet);
                Assert.IsNotNull(fromIndexer);
                Assert.IsNotNull(fromGetRequired);

                Assert.IsTrue(itemFound);

                Assert.AreEqual(type, fromGet.GetType());
                Assert.AreEqual(type, fromTryGet.GetType());
                Assert.AreEqual(type, fromIndexer.GetType());
                Assert.AreEqual(type, fromGetRequired.GetType());

                Assert.AreSame(fromGet, fromTryGet);
                Assert.AreSame(fromIndexer, fromTryGet);
                Assert.AreSame(fromGetRequired, fromTryGet);
            });
        }
        /// <summary>
        /// Получить поведение.
        /// </summary>
        /// <typeparam name="TMessage">Тип сообщения.</typeparam>
        /// <param name="subscriberSettings">Настройки подписчика.</param>
        /// <returns>Поведение оповещения брокера сообщений.</returns>
        public IAcknowledgementBehaviour GetBehaviour <TMessage>(SubscriberSettings subscriberSettings)
        {
            if (_resolver.TryGet(out var acknowledgementBehaviour, typeof(TMessage).Name))
            {
                return(acknowledgementBehaviour);
            }

            return(_resolver.GetRequired());
        }
예제 #3
0
        /// <summary>
        /// Получить подписчика.
        /// </summary>
        /// <typeparam name="TMessage">Тип сообщения.</typeparam>
        /// <returns>Подписчик.</returns>
        public ISubscriber GetSubscriber <TMessage>()
            where TMessage : IMessage
        {
            if (_resolver.TryGet(out var subscriber, typeof(TMessage).Name))
            {
                return(subscriber);
            }

            return(_resolver.GetRequired());
        }
 public void ThrowsIfNotFound(string name)
 {
     Assert.Throws <InvalidOperationException>(() => _namedResolver.GetRequired(name));
 }
예제 #5
0
        public void ThrowIfNotFound(string value)
        {
            var customClassForResolver = CreateWith(value);

            Assert.Throws <InvalidOperationException>(() => _namedResolver.GetRequired(customClassForResolver));
        }
예제 #6
0
 public void ThrowIfNotFound(EnumForResolver enumForResolver)
 {
     Assert.Throws <InvalidOperationException>(() => _namedResolver.GetRequired(enumForResolver));
 }