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) ); }
public IEnumerator <IEntity> GetEnumerator() { return(CachedEntities.GetEnumerator()); }
public IEnumerator <IEntity> GetEnumerator() { return(EntityLookup.GetEnumerator()); }