public async Task EventhubCreateGetUpdateDeleteAuthorizationRules_Length() { var location = await GetLocation(); var resourceGroupName = Recording.GenerateAssetName(Helper.ResourceGroupPrefix); Subscription sub = await ArmClient.GetDefaultSubscriptionAsync(); await sub.GetResourceGroups().CreateOrUpdateAsync(resourceGroupName, new ResourceGroupData(location));; var namespaceName = Recording.GenerateAssetName(Helper.NamespacePrefix); var createNamespaceResponse = await NamespacesOperations.StartCreateOrUpdateAsync(resourceGroupName, namespaceName, new EHNamespace() { Location = location, //Sku = new Sku("as") Tags = { { "tag1", "value1" }, { "tag2", "value2" } } } ); var np = (await WaitForCompletionAsync(createNamespaceResponse)).Value; Assert.NotNull(createNamespaceResponse); Assert.AreEqual(np.Name, namespaceName); DelayInTest(5); //get the created namespace var getNamespaceResponse = await NamespacesOperations.GetAsync(resourceGroupName, namespaceName); if (string.Compare(getNamespaceResponse.Value.ProvisioningState, "Succeeded", true) != 0) { DelayInTest(5); } getNamespaceResponse = await NamespacesOperations.GetAsync(resourceGroupName, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.AreEqual("Succeeded", getNamespaceResponse.Value.ProvisioningState, StringComparer.CurrentCultureIgnoreCase.ToString()); Assert.AreEqual(location, getNamespaceResponse.Value.Location); // Create Eventhub var eventHubName = Helper.EventHubPrefix + "thisisthenamewithmorethan53charschecktoverifytheremovlaof50charsnamelengthlimit"; var createEventHubResponse = await EventHubsOperations.CreateOrUpdateAsync(resourceGroupName, namespaceName, eventHubName, new Eventhub() { MessageRetentionInDays = 5 }); Assert.NotNull(createEventHubResponse); Assert.AreEqual(createEventHubResponse.Value.Name, eventHubName); //Get the created EventHub var getEventHubResponse = await EventHubsOperations.GetAsync(resourceGroupName, namespaceName, eventHubName); Assert.NotNull(getEventHubResponse.Value); Assert.AreEqual(EntityStatus.Active, getEventHubResponse.Value.Status); Assert.AreEqual(getEventHubResponse.Value.Name, eventHubName); // Create a EventHub AuthorizationRule var authorizationRuleName = Helper.AuthorizationRulesPrefix + "thisisthenamewithmorethan53charschecktoverifytheremovlaof50charsnamelengthlimit"; string createPrimaryKey = Recording.GetVariable("CreatePrimaryKey", Helper.GenerateRandomKey()); var createAutorizationRuleParameter = new AuthorizationRule() { Rights = { AccessRights.Listen, AccessRights.Send } }; var createEventhubAuthorizationRuleResponse = await EventHubsOperations.CreateOrUpdateAuthorizationRuleAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName, createAutorizationRuleParameter); Assert.NotNull(createEventhubAuthorizationRuleResponse); Assert.True(createEventhubAuthorizationRuleResponse.Value.Rights.Count == createAutorizationRuleParameter.Rights.Count); Assert.True(isContains(createAutorizationRuleParameter.Rights, createEventhubAuthorizationRuleResponse.Value.Rights)); // Get created Eventhub AuthorizationRules var getEventhubAuthorizationRulesResponse = await EventHubsOperations.GetAuthorizationRuleAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(getEventhubAuthorizationRulesResponse); Assert.True(getEventhubAuthorizationRulesResponse.Value.Rights.Count == createAutorizationRuleParameter.Rights.Count); Assert.True(isContains(createAutorizationRuleParameter.Rights, getEventhubAuthorizationRulesResponse.Value.Rights)); // Get all Eventhub AuthorizationRules var getAllNamespaceAuthorizationRulesResponse = EventHubsOperations.ListAuthorizationRulesAsync(resourceGroupName, namespaceName, eventHubName); Assert.NotNull(getAllNamespaceAuthorizationRulesResponse); var getAllNSPAuthRulesRespList = await getAllNamespaceAuthorizationRulesResponse.ToEnumerableAsync(); Assert.True(getAllNSPAuthRulesRespList.Count() == 1); bool isContainauthorizationRuleName = false; foreach (var detail in getAllNSPAuthRulesRespList) { if (detail.Name == authorizationRuleName) { isContainauthorizationRuleName = true; break; } } Assert.True(isContainauthorizationRuleName); // Update Eventhub authorizationRule string updatePrimaryKey = Recording.GetVariable("UpdatePrimaryKey", Helper.GenerateRandomKey()); AuthorizationRule updateEventhubAuthorizationRuleParameter = new AuthorizationRule(); updateEventhubAuthorizationRuleParameter.Rights.Add(AccessRights.Listen); var updateEventhubAuthorizationRuleResponse = await EventHubsOperations.CreateOrUpdateAuthorizationRuleAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName, updateEventhubAuthorizationRuleParameter); Assert.NotNull(updateEventhubAuthorizationRuleResponse); Assert.AreEqual(authorizationRuleName, updateEventhubAuthorizationRuleResponse.Value.Name); Assert.True(updateEventhubAuthorizationRuleResponse.Value.Rights.Count == updateEventhubAuthorizationRuleParameter.Rights.Count); Assert.True(isContains(updateEventhubAuthorizationRuleParameter.Rights, updateEventhubAuthorizationRuleResponse.Value.Rights)); // Get the updated Eventhub AuthorizationRule var getEventhubAuthorizationRuleResponse = await EventHubsOperations.GetAuthorizationRuleAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(getEventhubAuthorizationRuleResponse); Assert.AreEqual(authorizationRuleName, getEventhubAuthorizationRuleResponse.Value.Name); Assert.True(getEventhubAuthorizationRuleResponse.Value.Rights.Count == updateEventhubAuthorizationRuleParameter.Rights.Count); Assert.True(isContains(updateEventhubAuthorizationRuleParameter.Rights, getEventhubAuthorizationRuleResponse.Value.Rights)); // Get the connectionString to the Eventhub for a Authorization rule created var listKeysResponse = await EventHubsOperations.ListKeysAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(listKeysResponse); Assert.NotNull(listKeysResponse.Value.PrimaryConnectionString); Assert.NotNull(listKeysResponse.Value.SecondaryConnectionString); //New connection string var regenerateConnection_primary = await EventHubsOperations.RegenerateKeysAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName, new RegenerateAccessKeyParameters(KeyType.PrimaryKey)); Assert.NotNull(regenerateConnection_primary); // Assert.AreNotEqual(listKeysResponse.Value.PrimaryConnectionString, regenerateConnection_primary.Value.PrimaryConnectionString); Assert.AreEqual(listKeysResponse.Value.SecondaryConnectionString, regenerateConnection_primary.Value.SecondaryConnectionString); var regenerateConnection_Secondary = await EventHubsOperations.RegenerateKeysAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName, new RegenerateAccessKeyParameters(KeyType.SecondaryKey)); Assert.NotNull(regenerateConnection_Secondary); // Assert.AreNotEqual(listKeysResponse.Value.SecondaryConnectionString, regenerateConnection_Secondary.Value.SecondaryConnectionString); Assert.AreEqual(regenerateConnection_primary.Value.PrimaryConnectionString, regenerateConnection_Secondary.Value.PrimaryConnectionString); // Delete Eventhub authorizationRule await EventHubsOperations.DeleteAuthorizationRuleAsync(resourceGroupName, namespaceName, eventHubName, authorizationRuleName); DelayInTest(5); // Delete Eventhub and check for the NotFound exception await EventHubsOperations.DeleteAsync(resourceGroupName, namespaceName, eventHubName); // Delete namespace and check for the NotFound exception await WaitForCompletionAsync(await NamespacesOperations.StartDeleteAsync(resourceGroupName, namespaceName)); }
public async Task EventhubCreateGetUpdateDeleteAuthorizationRules() { var location = GetLocation(); var resourceGroup = Recording.GenerateAssetName(Helper.ResourceGroupPrefix); await Helper.TryRegisterResourceGroupAsync(ResourceGroupsOperations, location.Result, resourceGroup); var namespaceName = Recording.GenerateAssetName(Helper.NamespacePrefix); var createNamespaceResponse = await NamespacesOperations.StartCreateOrUpdateAsync(resourceGroup, namespaceName, new EHNamespace() { Location = location.Result, Sku = new Sku(SkuName.Standard) { Tier = SkuTier.Standard }, Tags = new Dictionary <string, string>() { { "tag1", "value1" }, { "tag2", "value2" } } } ); var np = (await WaitForCompletionAsync(createNamespaceResponse)).Value; Assert.NotNull(createNamespaceResponse); Assert.AreEqual(np.Name, namespaceName); DelayInTest(5); //get the created namespace var getNamespaceResponse = await NamespacesOperations.GetAsync(resourceGroup, namespaceName); if (string.Compare(getNamespaceResponse.Value.ProvisioningState, "Succeeded", true) != 0) { DelayInTest(5); } getNamespaceResponse = await NamespacesOperations.GetAsync(resourceGroup, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.AreEqual("Succeeded", getNamespaceResponse.Value.ProvisioningState, StringComparer.CurrentCultureIgnoreCase.ToString()); Assert.AreEqual(location.Result, getNamespaceResponse.Value.Location); // Create Eventhub var eventHubName = Recording.GenerateAssetName(Helper.EventHubPrefix); var createEventHubResponse = await EventHubsOperations.CreateOrUpdateAsync(resourceGroup, namespaceName, eventHubName, new Eventhub() { MessageRetentionInDays = 5 }); Assert.NotNull(createEventHubResponse); Assert.AreEqual(createEventHubResponse.Value.Name, eventHubName); //Get the created EventHub var getEventHubResponse = await EventHubsOperations.GetAsync(resourceGroup, namespaceName, eventHubName); Assert.NotNull(getEventHubResponse.Value); Assert.AreEqual(EntityStatus.Active, getEventHubResponse.Value.Status); Assert.AreEqual(getEventHubResponse.Value.Name, eventHubName); // Create a EventHub AuthorizationRule var authorizationRuleName = Recording.GenerateAssetName(Helper.AuthorizationRulesPrefix); string createPrimaryKey = Recording.GetVariable("CreatePrimaryKey", Helper.GenerateRandomKey()); var createAutorizationRuleParameter = new AuthorizationRule() { Rights = new List <AccessRights>() { AccessRights.Listen, AccessRights.Send } }; var createEventhubAuthorizationRuleResponse = await EventHubsOperations.CreateOrUpdateAuthorizationRuleAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName, createAutorizationRuleParameter); Assert.NotNull(createEventhubAuthorizationRuleResponse); Assert.True(createEventhubAuthorizationRuleResponse.Value.Rights.Count == createAutorizationRuleParameter.Rights.Count); Assert.True(isContains(createAutorizationRuleParameter.Rights, createEventhubAuthorizationRuleResponse.Value.Rights)); // Get created Eventhub AuthorizationRules var getEventhubAuthorizationRulesResponse = await EventHubsOperations.GetAuthorizationRuleAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(getEventhubAuthorizationRulesResponse); Assert.True(getEventhubAuthorizationRulesResponse.Value.Rights.Count == createAutorizationRuleParameter.Rights.Count); Assert.True(isContains(createAutorizationRuleParameter.Rights, getEventhubAuthorizationRulesResponse.Value.Rights)); // Get all Eventhub AuthorizationRules var getAllNamespaceAuthorizationRulesResponse = EventHubsOperations.ListAuthorizationRulesAsync(resourceGroup, namespaceName, eventHubName); Assert.NotNull(getAllNamespaceAuthorizationRulesResponse); var getAllNSPAuthRulesRespList = await getAllNamespaceAuthorizationRulesResponse.ToEnumerableAsync(); Assert.True(getAllNSPAuthRulesRespList.Count() == 1); bool isContainauthorizationRuleName = false; foreach (var detail in getAllNSPAuthRulesRespList) { if (detail.Name == authorizationRuleName) { isContainauthorizationRuleName = true; break; } } Assert.True(isContainauthorizationRuleName); // Update Eventhub authorizationRule string updatePrimaryKey = Recording.GetVariable("UpdatePrimaryKey", Helper.GenerateRandomKey()); AuthorizationRule updateEventhubAuthorizationRuleParameter = new AuthorizationRule(); updateEventhubAuthorizationRuleParameter.Rights = new List <AccessRights>() { AccessRights.Listen }; var updateEventhubAuthorizationRuleResponse = await EventHubsOperations.CreateOrUpdateAuthorizationRuleAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName, updateEventhubAuthorizationRuleParameter); Assert.NotNull(updateEventhubAuthorizationRuleResponse); Assert.AreEqual(authorizationRuleName, updateEventhubAuthorizationRuleResponse.Value.Name); Assert.True(updateEventhubAuthorizationRuleResponse.Value.Rights.Count == updateEventhubAuthorizationRuleParameter.Rights.Count); Assert.True(isContains(updateEventhubAuthorizationRuleParameter.Rights, updateEventhubAuthorizationRuleResponse.Value.Rights)); // Get the updated Eventhub AuthorizationRule var getEventhubAuthorizationRuleResponse = await EventHubsOperations.GetAuthorizationRuleAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(getEventhubAuthorizationRuleResponse); Assert.AreEqual(authorizationRuleName, getEventhubAuthorizationRuleResponse.Value.Name); Assert.True(getEventhubAuthorizationRuleResponse.Value.Rights.Count == updateEventhubAuthorizationRuleParameter.Rights.Count); Assert.True(isContains(updateEventhubAuthorizationRuleParameter.Rights, getEventhubAuthorizationRuleResponse.Value.Rights)); // Get the connectionString to the Eventhub for a Authorization rule created var listKeysResponse = await EventHubsOperations.ListKeysAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName); Assert.NotNull(listKeysResponse); Assert.NotNull(listKeysResponse.Value.PrimaryConnectionString); Assert.NotNull(listKeysResponse.Value.SecondaryConnectionString); //New connection string var regenerateConnection_primary = await EventHubsOperations.RegenerateKeysAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName, new RegenerateAccessKeyParameters(KeyType.PrimaryKey)); Assert.NotNull(regenerateConnection_primary); Assert.AreNotEqual(listKeysResponse.Value.PrimaryConnectionString, regenerateConnection_primary.Value.PrimaryConnectionString); Assert.AreEqual(listKeysResponse.Value.SecondaryConnectionString, regenerateConnection_primary.Value.SecondaryConnectionString); var regenerateConnection_Secondary = await EventHubsOperations.RegenerateKeysAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName, new RegenerateAccessKeyParameters(KeyType.SecondaryKey)); Assert.NotNull(regenerateConnection_Secondary); Assert.AreNotEqual(listKeysResponse.Value.SecondaryConnectionString, regenerateConnection_Secondary.Value.SecondaryConnectionString); Assert.AreEqual(regenerateConnection_primary.Value.PrimaryConnectionString, regenerateConnection_Secondary.Value.PrimaryConnectionString); // Delete Eventhub authorizationRule await EventHubsOperations.DeleteAuthorizationRuleAsync(resourceGroup, namespaceName, eventHubName, authorizationRuleName); DelayInTest(5); // Delete Eventhub and check for the NotFound exception await EventHubsOperations.DeleteAsync(resourceGroup, namespaceName, eventHubName); // Delete namespace and check for the NotFound exception await WaitForCompletionAsync(await NamespacesOperations.StartDeleteAsync(resourceGroup, namespaceName)); }