public void Should_setup_permissions() { var testQueueName = "MsmqQueueCreatorTests.permissions"; var creator = new QueueCreator(true); var bindings = new QueueBindings(); DeleteQueueIfPresent(testQueueName); bindings.BindReceiving(testQueueName); // use the network service account since that one won't be in the local admin group creator.CreateQueueIfNecessary(bindings, NetworkServiceAccountName); var createdQueue = GetQueue(testQueueName); MessageQueueAccessRights?accountAccessRights; Assert.True(createdQueue.TryGetPermissions(NetworkServiceAccountName, out accountAccessRights)); Assert.True(accountAccessRights.HasValue, "User should have access rights"); Assert.AreEqual(MessageQueueAccessRights.WriteMessage | MessageQueueAccessRights.ReceiveMessage, accountAccessRights, "User should have write/read access"); MessageQueueAccessRights?localAdminAccessRights; Assert.True(createdQueue.TryGetPermissions(LocalAdministratorsGroupName, out localAdminAccessRights)); Assert.True(localAdminAccessRights.HasValue, "User should have access rights"); Assert.AreEqual(MessageQueueAccessRights.FullControl, localAdminAccessRights, "LocalAdmins should have full control"); }
public SearchByPattern(string sourceFilePath, ISearcher searcher) { this.sourceFilePath = sourceFilePath; this.searcher = searcher; fileQueueCreator = new SearchbleQueueCreator(sourceFilePath); filesQueue = fileQueueCreator.GetFilledQueueOfFilesPath(); }
public void Should_not_add_everyone_and_anonymous_to_already_existing_queues() { var testQueueName = "MsmqQueueCreatorTests.NoChangesToExisting"; DeleteQueueIfPresent(testQueueName); var path = MsmqAddress.Parse(testQueueName).PathWithoutPrefix; using (var existingQueue = MessageQueue.Create(path)) { existingQueue.SetPermissions(LocalEveryoneGroupName, MessageQueueAccessRights.GenericWrite, AccessControlEntryType.Revoke); existingQueue.SetPermissions(LocalAnonymousLogonName, MessageQueueAccessRights.WriteMessage, AccessControlEntryType.Revoke); } var creator = new QueueCreator(true); var bindings = new QueueBindings(); bindings.BindReceiving(testQueueName); creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name); var queue = GetQueue(testQueueName); MessageQueueAccessRights?nullBecauseRevoked; Assert.False(queue.TryGetPermissions(LocalEveryoneGroupName, out nullBecauseRevoked)); Assert.False(queue.TryGetPermissions(LocalAnonymousLogonName, out nullBecauseRevoked)); }
static Task CreateQueueIfNotExists(QueueAddressTranslator addressTranslator) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressTranslator); var queueBindings = new QueueBindings(); queueBindings.BindReceiving(QueueTableName); return(queueCreator.CreateQueueIfNecessary(queueBindings, "")); }
public void Should_blow_up_if_name_is_null() { var creator = new QueueCreator(true); var bindings = new QueueBindings(); bindings.BindReceiving(null); Assert.Throws <ArgumentNullException>(() => creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name)); }
static Task CreateOutputQueueIfNecessary(QueueAddressParser addressParser) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressParser); var queueBindings = new QueueBindings(); queueBindings.BindReceiving(validAddress); return(queueCreator.CreateQueueIfNecessary(queueBindings, "")); }
static Task CreateOutputQueueIfNecessary(QueueAddressTranslator addressParser, SqlConnectionFactory sqlConnectionFactory) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressParser, new CanonicalQueueAddress("Delayed", "dbo", "nservicebus")); var queueBindings = new QueueBindings(); queueBindings.BindReceiving(validAddress); return(queueCreator.CreateQueueIfNecessary(queueBindings, "")); }
static Task CreateQueueIfNotExists(QueueAddressTranslator addressTranslator, SqlConnectionFactory sqlConnectionFactory) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressTranslator, new CanonicalQueueAddress("Delayed", "dbo", "nservicebus")); var queueBindings = new QueueBindings(); queueBindings.BindReceiving(QueueTableName); return(queueCreator.CreateQueueIfNecessary(queueBindings, "")); }
public KafkaTransportInfrastructure(SettingsHolder settings, string connectionString) { this.settings = settings; this.connectionString = connectionString; serializer = BuildSerializer(settings); this.queueCreator = new QueueCreator(settings); messagePump = new MessagePump(settings, connectionString); messageDispatcher = new MessageDispatcher(new Transports.Kafka.Connection.ProducerFactory(connectionString)); subscriptionManager = new SubscriptionManager(messagePump, queueCreator); }
public void Should_not_create_remote_queues() { var creator = new QueueCreator(true); var bindings = new QueueBindings(); var remoteQueueName = "MsmqQueueCreatorTests.remote"; bindings.BindSending($"{remoteQueueName}@some-machine"); creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name); Assert.False(QueueExists(remoteQueueName)); }
static async Task ResetQueue(QueueAddressTranslator addressTranslator, SqlConnectionFactory sqlConnectionFactory, CancellationToken cancellationToken = default) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressTranslator); using (var connection = await sqlConnectionFactory.OpenNewConnection(cancellationToken).ConfigureAwait(false)) { using (var comm = connection.CreateCommand()) { comm.CommandText = $"IF OBJECT_ID('{QueueTableName}', 'U') IS NOT NULL DROP TABLE {QueueTableName}"; comm.ExecuteNonQuery(); } } await queueCreator.CreateQueueIfNecessary(new[] { QueueTableName }, new CanonicalQueueAddress("Delayed", "dbo", "nservicebus"), cancellationToken).ConfigureAwait(false); }
public void Should_blow_up_for_invalid_accounts() { var testQueueName = "MsmqQueueCreatorTests.badidentity"; DeleteQueueIfPresent(testQueueName); var creator = new QueueCreator(true); var bindings = new QueueBindings(); bindings.BindReceiving(testQueueName); var ex = Assert.Throws <InvalidOperationException>(() => creator.CreateQueueIfNecessary(bindings, "invalidaccount")); StringAssert.Contains("invalidaccount", ex.Message); }
public void Should_allow_queue_names_above_the_limit_for_set_permission() { var testQueueName = $"MsmqQueueCreatorTests.tolong.{Guid.NewGuid().ToString().Replace("-", "")}"; var maxQueueNameForSetPermissionToWork = 102 - Environment.MachineName.Length; testQueueName = $"{testQueueName}{new string('a', maxQueueNameForSetPermissionToWork - testQueueName.Length + 1)}"; DeleteQueueIfPresent(testQueueName); var creator = new QueueCreator(true); var bindings = new QueueBindings(); bindings.BindReceiving(testQueueName); Assert.DoesNotThrow(() => creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name)); }
public void Should_make_queues_non_transactional_if_requested() { var testQueueName = "MsmqQueueCreatorTests.txreceiver"; DeleteQueueIfPresent(testQueueName); var creator = new QueueCreator(false); var bindings = new QueueBindings(); bindings.BindReceiving(testQueueName); creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name); var queue = GetQueue(testQueueName); Assert.False(queue.Transactional); }
static async Task ResetQueue(QueueAddressTranslator addressTranslator) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressTranslator); var queueBindings = new QueueBindings(); queueBindings.BindReceiving(QueueTableName); using (var connection = await sqlConnectionFactory.OpenNewConnection().ConfigureAwait(false)) { using (var comm = connection.CreateCommand()) { comm.CommandText = $"IF OBJECT_ID('{QueueTableName}', 'U') IS NOT NULL DROP TABLE {QueueTableName}"; comm.ExecuteNonQuery(); } } await queueCreator.CreateQueueIfNecessary(queueBindings, "").ConfigureAwait(false); }
public void Should_create_all_queues() { var creator = new QueueCreator(true); var bindings = new QueueBindings(); DeleteQueueIfPresent("MsmqQueueCreatorTests.receiver"); DeleteQueueIfPresent("MsmqQueueCreatorTests.endpoint1"); DeleteQueueIfPresent("MsmqQueueCreatorTests.endpoint2"); bindings.BindReceiving("MsmqQueueCreatorTests.receiver"); bindings.BindSending("MsmqQueueCreatorTests.target1"); bindings.BindSending("MsmqQueueCreatorTests.target2"); creator.CreateQueueIfNecessary(bindings, WindowsIdentity.GetCurrent().Name); Assert.True(QueueExists("MsmqQueueCreatorTests.receiver")); Assert.True(QueueExists("MsmqQueueCreatorTests.target1")); Assert.True(QueueExists("MsmqQueueCreatorTests.target2")); }
public void TestQueueCreator() { AbilityChecker abilityChecker = new AbilityChecker(new StableDice()); List <Player> party = new List <Player> { CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10) }; List <Player> opponents = new List <Player> { CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10), CreatePlayer(10) }; List <Player> queue = QueueCreator.MakeQueue(party, opponents, abilityChecker); Assert.AreEqual(party.Count + opponents.Count, queue.Count); for (int i = 0; i < party.Count; i++) { Assert.AreEqual(party[i], queue[i]); } for (int i = 0; i < opponents.Count; i++) { Assert.AreEqual(opponents[i], queue[i + party.Count]); } }
static Task CreateOutputQueueIfNecessary(QueueAddressTranslator addressParser, SqlConnectionFactory sqlConnectionFactory, CancellationToken cancellationToken = default) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressParser); return(queueCreator.CreateQueueIfNecessary(new[] { ValidAddress }, new CanonicalQueueAddress("Delayed", "dbo", "nservicebus"), cancellationToken)); }
public SubscriptionManager(MessagePump messagePump, QueueCreator queueCreator) { this.messagePump = messagePump; this.queueCreator = queueCreator; }
static Task CreateQueueIfNotExists(QueueAddressTranslator addressTranslator, SqlConnectionFactory sqlConnectionFactory, CancellationToken cancellationToken = default) { var queueCreator = new QueueCreator(sqlConnectionFactory, addressTranslator, false); return(queueCreator.CreateQueueIfNecessary(new[] { QueueTableName }, new CanonicalQueueAddress("Delayed", "dbo", "nservicebus"), cancellationToken)); }