internal ServiceBusSimulatorSettings(ServiceBusBuilder builder) { LoggerProvider = builder.LoggerProvider ?? NullLoggerProvider.Instance; Certificate = builder.Certificate; Port = builder.Port; Topics = builder.Topics; Queues = builder.Queues; }
/// <summary> /// Adds a queue to the service bus builder. /// </summary> /// <param name="serviceBusBuilder">The <see cref="ServiceBusBuilder"/> instance.</param> /// <param name="queueName">A queue name.</param> /// <returns>The <see cref="ServiceBusBuilder"/>.</returns> public static ServiceBusBuilder AddQueue(this ServiceBusBuilder serviceBusBuilder, string queueName) { if (serviceBusBuilder == null) { throw new ArgumentNullException(nameof(serviceBusBuilder)); } return(serviceBusBuilder.AddQueue(new Queue(queueName))); }
/// <summary> /// Adds a topic to the service bus builder. /// </summary> /// <param name="serviceBusBuilder">The <see cref="ServiceBusBuilder"/> instance.</param> /// <param name="topicName">A topic name.</param> /// <param name="subscriptions">A string array that contains zero or more subscription names.</param> /// <returns>The <see cref="ServiceBusBuilder"/>.</returns> /// <exception cref="System.ArgumentNullException">If <paramref name="topicName"/> is null.</exception> /// <exception cref="System.ArgumentException">If <paramref name="topicName"/> or <paramref name="subscriptions"/> are invalid.</exception> public static ServiceBusBuilder AddTopic(this ServiceBusBuilder serviceBusBuilder, string topicName, params string[] subscriptions) { if (serviceBusBuilder == null) { throw new ArgumentNullException(nameof(serviceBusBuilder)); } return(serviceBusBuilder.AddTopic(new Topic( topicName, subscriptions?.Select(name => new Subscription(name)).ToArray() ))); }
internal ServiceBusSimulator(ServiceBusBuilder builder) { Settings = new ServiceBusSimulatorSettings(builder); Topics = builder.Topics .Select(topic => (ITopic) new TopicEntity(topic.Name, topic.Subscriptions.Select(subscription => subscription.Name))) .ToDictionary(entity => entity.Name, StringComparer.OrdinalIgnoreCase) .AsReadOnly(); Queues = builder.Queues .Select(queue => (IQueue) new QueueEntity(queue.Name)) .ToDictionary(entity => entity.Name, StringComparer.OrdinalIgnoreCase) .AsReadOnly(); _securityContext = SecurityContext.Default; _cbsTokenValidator = CbsTokenValidator.Default; _entityLookup = new EntityLookup(this); _logger = Settings.LoggerProvider.CreateLogger(nameof(ServiceBusSimulator)); }