Example #1
0
        public void GetEnumerator_ReturnsAllEntriesFromTopicAndSubscriptionsAndQueues([Values] bool genericEnumerator)
        {
            IQueue subscription1 = Substitute.For <IQueue, IEntity>();

            subscription1.Name.Returns("sub1");
            IQueue subscription2 = Substitute.For <IQueue, IEntity>();

            subscription2.Name.Returns("sub2");
            var subscriptions = new Dictionary <string, IQueue>
            {
                [subscription1.Name] = subscription1,
                [subscription2.Name] = subscription2
            };
            ITopic topic = Substitute.For <ITopic, IEntity>();

            topic.Name.Returns("topic");
            topic.Subscriptions.Returns(subscriptions);
            var topics = new Dictionary <string, ITopic>
            {
                [topic.Name] = topic
            };
            IQueue queue = Substitute.For <IQueue, IEntity>();

            queue.Name.Returns("que");
            var queues = new Dictionary <string, IQueue>
            {
                [queue.Name] = queue
            };
            IServiceBusSimulator fakeSimulator = Substitute.For <IServiceBusSimulator>();

            fakeSimulator.Topics.Returns(topics);
            fakeSimulator.Queues.Returns(queues);
            var lookup = new EntityLookup(fakeSimulator);
            var data   = new Dictionary <string, IEntity>();

            IEnumerator enumerator = genericEnumerator
                ? lookup.GetEnumerator()
                : ((IEnumerable)lookup).GetEnumerator();

            using (enumerator as IDisposable)
            {
                while (enumerator.MoveNext())
                {
                    (string address, IEntity entity) = ((string, IEntity))enumerator.Current;
                    data.Add(address, entity);
                }
            }

            data.ShouldSatisfyAllConditions(
                () => data.Count.ShouldBe(4),
                () => data["que"].ShouldBeSameAs(queue),
                () => data["topic"].ShouldBeSameAs(topic),
                () => data["topic/Subscriptions/sub1"].ShouldBeSameAs(subscription1),
                () => data["topic/Subscriptions/sub2"].ShouldBeSameAs(subscription2)
                );
        }
Example #2
0
 public IEnumerator <IEntity> GetEnumerator()
 {
     return(CachedEntities.GetEnumerator());
 }
Example #3
0
 public IEnumerator <IEntity> GetEnumerator()
 {
     return(EntityLookup.GetEnumerator());
 }