private List <string> CreateNotificationHubs(string location, string resourceGroup, string namespaceName, int count) { List <string> notificationHubNameList = new List <string>(); for (int i = 0; i < count; i++) { var notificationHubName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NotificationHubPrefix) + TestUtilities.GenerateName(); notificationHubNameList.Add(notificationHubName); Console.WriteLine(notificationHubName); var parameter = new NotificationHubCreateOrUpdateParameters() { Location = location, Properties = new NotificationHubProperties() }; var jsonStr = NotificationHubsManagementHelper.ConvertObjectToJSon(parameter); var createNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Create(resourceGroup, namespaceName, notificationHubName, parameter); Assert.NotNull(createNotificationHubResponse); Assert.NotNull(createNotificationHubResponse.Value); } return(notificationHubNameList); }
protected void InitializeClients(MockContext context) { if (!m_initialized) { lock (m_lock) { if (!m_initialized) { _resourceManagementClient = NotificationHubsManagementHelper.GetResourceManagementClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); _notificationHubsManagementClient = NotificationHubsManagementHelper.GetNotificationHubsManagementClient(context, new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }); } } } }
private List <string> CreateNotificationHubs(string location, string resourceGroup, string namespaceName, int count) { List <string> notificationHubNameList = new List <string>(); for (int i = 0; i < count; i++) { var notificationHubName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NotificationHubPrefix) + TestUtilities.GenerateName(); notificationHubNameList.Add(notificationHubName); Console.WriteLine(notificationHubName); var parameter = new NotificationHubCreateOrUpdateParameters() { Location = location, Properties = new NotificationHubProperties() { WnsCredential = new WnsCredential() { Properties = new WnsCredentialProperties() { PackageSid = "ms-app://s-1-15-2-1817505189-427745171-3213743798-2985869298-800724128-1004923984-4143860699", SecretKey = "w7TBprR-9tJxn9mUOdK4PPHLCAzSYFhp", WindowsLiveEndpoint = @"http://pushtestservice.cloudapp.net/LiveID/accesstoken.srf" } } } }; var jsonStr = NotificationHubsManagementHelper.ConvertObjectToJSon(parameter); var createNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.CreateOrUpdate(resourceGroup, namespaceName, notificationHubName, parameter); Assert.NotNull(createNotificationHubResponse); } return(notificationHubNameList); }
public void NamespaceCreateGetUpdateDeleteAuthorizationRules() { using (MockContext context = MockContext.Start(this.GetType().FullName)) { InitializeClients(context); var location = NotificationHubsManagementHelper.DefaultLocation; var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location); if (string.IsNullOrWhiteSpace(resourceGroup)) { resourceGroup = TestUtilities.GenerateName(NotificationHubsManagementHelper.ResourceGroupPrefix); this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup); } //Create a namespace var namespaceName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NamespacePrefix); var createNamespaceResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdate(resourceGroup, namespaceName, new NamespaceCreateOrUpdateParameters() { Location = location }); Assert.NotNull(createNamespaceResponse); Assert.Equal(createNamespaceResponse.Name, namespaceName); ActivateNamespace(resourceGroup, namespaceName); //Get the created namespace var getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.Equal("Succeeded", getNamespaceResponse.ProvisioningState, StringComparer.CurrentCultureIgnoreCase); Assert.Equal("Active", getNamespaceResponse.Status, StringComparer.CurrentCultureIgnoreCase); Assert.Equal(NamespaceType.NotificationHub, getNamespaceResponse.NamespaceType); Assert.Equal(location, getNamespaceResponse.Location, StringComparer.CurrentCultureIgnoreCase); //Create a namespace AuthorizationRule var authorizationRuleName = TestUtilities.GenerateName(NotificationHubsManagementHelper.AuthorizationRulesPrefix); string createPrimaryKey = HttpMockServer.GetVariable("CreatePrimaryKey", NotificationHubsManagementHelper.GenerateRandomKey()); var createAutorizationRuleParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters() { Properties = new SharedAccessAuthorizationRuleProperties() { Rights = new List <AccessRights?>() { AccessRights.Listen, AccessRights.Send }, } }; var jsonStr = NotificationHubsManagementHelper.ConvertObjectToJSon(createAutorizationRuleParameter); var createNamespaceAuthorizationRuleResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdateAuthorizationRule(resourceGroup, namespaceName, authorizationRuleName, createAutorizationRuleParameter); Assert.NotNull(createNamespaceAuthorizationRuleResponse); Assert.Equal(createNamespaceAuthorizationRuleResponse.Name, authorizationRuleName); Assert.True(createNamespaceAuthorizationRuleResponse.Rights.Count == createAutorizationRuleParameter.Properties.Rights.Count); foreach (var right in createAutorizationRuleParameter.Properties.Rights) { Assert.Contains(createNamespaceAuthorizationRuleResponse.Rights, r => r == right); } //Get default namespace AuthorizationRules var getNamespaceAuthorizationRulesResponse = NotificationHubsManagementClient.Namespaces.GetAuthorizationRule(resourceGroup, namespaceName, NotificationHubsManagementHelper.DefaultNamespaceAuthorizationRule); Assert.NotNull(getNamespaceAuthorizationRulesResponse); Assert.Equal(getNamespaceAuthorizationRulesResponse.Name, NotificationHubsManagementHelper.DefaultNamespaceAuthorizationRule); Assert.Contains(getNamespaceAuthorizationRulesResponse.Rights, r => r == AccessRights.Listen); Assert.Contains(getNamespaceAuthorizationRulesResponse.Rights, r => r == AccessRights.Send); Assert.Contains(getNamespaceAuthorizationRulesResponse.Rights, r => r == AccessRights.Manage); //Get created namespace AuthorizationRules getNamespaceAuthorizationRulesResponse = NotificationHubsManagementClient.Namespaces.GetAuthorizationRule(resourceGroup, namespaceName, authorizationRuleName); Assert.NotNull(getNamespaceAuthorizationRulesResponse); Assert.Equal(getNamespaceAuthorizationRulesResponse.Name, authorizationRuleName); Assert.True(getNamespaceAuthorizationRulesResponse.Rights.Count == createAutorizationRuleParameter.Properties.Rights.Count); foreach (var right in createAutorizationRuleParameter.Properties.Rights) { Assert.Contains(getNamespaceAuthorizationRulesResponse.Rights, r => r == right); } //Get all namespaces AuthorizationRules var getAllNamespaceAuthorizationRulesResponse = NotificationHubsManagementClient.Namespaces.ListAuthorizationRules(resourceGroup, namespaceName); Assert.NotNull(getAllNamespaceAuthorizationRulesResponse); Assert.True(getAllNamespaceAuthorizationRulesResponse.Count() > 1); Assert.Contains(getAllNamespaceAuthorizationRulesResponse, ns => ns.Name == authorizationRuleName); Assert.Contains(getAllNamespaceAuthorizationRulesResponse, auth => auth.Name == NotificationHubsManagementHelper.DefaultNamespaceAuthorizationRule); //Update namespace authorizationRule var updateNamespaceAuthorizationRuleParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters() { Properties = new SharedAccessAuthorizationRuleProperties() { Rights = new List <AccessRights?>() { AccessRights.Listen }, } }; //uncomment after the bug fix //var updateNamespaceAuthorizationRuleResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdateAuthorizationRule(resourceGroup, // namespaceName, authorizationRuleName, updateNamespaceAuthorizationRuleParameter); //Assert.NotNull(updateNamespaceAuthorizationRuleResponse); //Assert.Equal(authorizationRuleName, updateNamespaceAuthorizationRuleResponse.Name); //Assert.True(updateNamespaceAuthorizationRuleResponse.Rights.Count == updateNamespaceAuthorizationRuleParameter.Properties.Rights.Count); //foreach (var right in updateNamespaceAuthorizationRuleParameter.Properties.Rights) //{ // Assert.True(updateNamespaceAuthorizationRuleResponse.Rights.Any(r => r.Equals(right))); //} //Get the updated namespace AuthorizationRule //var getNamespaceAuthorizationRuleResponse = NotificationHubsManagementClient.Namespaces.GetAuthorizationRule(resourceGroup, namespaceName, // authorizationRuleName); //Assert.NotNull(getNamespaceAuthorizationRuleResponse); //Assert.Equal(authorizationRuleName, getNamespaceAuthorizationRuleResponse.Name); //Assert.True(getNamespaceAuthorizationRuleResponse.Rights.Count == updateNamespaceAuthorizationRuleParameter.Properties.Rights.Count); //foreach (var right in updateNamespaceAuthorizationRuleParameter.Properties.Rights) //{ // Assert.True(getNamespaceAuthorizationRuleResponse.Rights.Any(r => r.Equals(right))); //} //Get the connectionString to the namespace for a Authorization rule created var listKeysResponse = NotificationHubsManagementClient.Namespaces.ListKeys(resourceGroup, namespaceName, authorizationRuleName); Assert.NotNull(listKeysResponse); var policyKey = new PolicykeyResource() { PolicyKey = "primary KEY" }; var regenerateKeys = NotificationHubsManagementClient.Namespaces.RegenerateKeys(resourceGroup, namespaceName, authorizationRuleName, policyKey); Assert.NotNull(regenerateKeys); Assert.Equal(regenerateKeys.KeyName, authorizationRuleName); Assert.NotNull(regenerateKeys.PrimaryConnectionString); Assert.NotNull(regenerateKeys.SecondaryConnectionString); //Get the connectionString to the namespace for a Authorization rule after regenerating the primary key var listKeysAfterRegenerateResponse = NotificationHubsManagementClient.Namespaces.ListKeys(resourceGroup, namespaceName, authorizationRuleName); Assert.NotNull(listKeysAfterRegenerateResponse); //Delete namespace authorizationRule NotificationHubsManagementClient.Namespaces.DeleteAuthorizationRule(resourceGroup, namespaceName, authorizationRuleName); TestUtilities.Wait(TimeSpan.FromSeconds(5)); try { NotificationHubsManagementClient.Namespaces.GetAuthorizationRule(resourceGroup, namespaceName, authorizationRuleName); Assert.True(false, "this step should have failed"); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.NotFound, ex.Response.StatusCode); } try { //Delete namespace NotificationHubsManagementClient.Namespaces.Delete(resourceGroup, namespaceName); } catch (Exception ex) { Assert.Contains("NotFound", ex.Message); } } }
public void NotificationHubCreateGetUpdateDeleteAuthorizationRules() { using (var context = UndoContext.Current) { context.Start("ScenarioTests", "NotificationHubCreateGetUpdateDeleteAuthorizationRules"); var location = NotificationHubsManagementHelper.DefaultLocation; var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location); if (string.IsNullOrWhiteSpace(resourceGroup)) { resourceGroup = TestUtilities.GenerateName(NotificationHubsManagementHelper.ResourceGroupPrefix); this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup); } //Create a namespace var namespaceName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NamespacePrefix); var createNamespaceResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdate(resourceGroup, namespaceName, new NamespaceCreateOrUpdateParameters() { Location = location, Properties = new NamespaceProperties() { NamespaceType = NamespaceType.NotificationHub } }); Assert.NotNull(createNamespaceResponse); Assert.NotNull(createNamespaceResponse.Value); Assert.Equal(createNamespaceResponse.Value.Properties.Name, namespaceName); TestUtilities.Wait(TimeSpan.FromSeconds(30)); //Get the created namespace var getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); if (string.Compare(getNamespaceResponse.Value.Properties.ProvisioningState, "Succeeded", true) != 0) { TestUtilities.Wait(TimeSpan.FromSeconds(5)); } getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.NotNull(getNamespaceResponse.Value); Assert.Equal("Succeeded", getNamespaceResponse.Value.Properties.ProvisioningState, StringComparer.CurrentCultureIgnoreCase); Assert.Equal("Active", getNamespaceResponse.Value.Properties.Status, StringComparer.CurrentCultureIgnoreCase); Assert.Equal(NamespaceType.NotificationHub, getNamespaceResponse.Value.Properties.NamespaceType); Assert.Equal(location, getNamespaceResponse.Value.Properties.Region, StringComparer.CurrentCultureIgnoreCase); //Create a notificationHub var notificationHubName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NotificationHubPrefix); var createNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Create(resourceGroup, namespaceName, notificationHubName, new NotificationHubCreateOrUpdateParameters() { Location = location, Properties = new NotificationHubProperties() }); Assert.NotNull(createNotificationHubResponse); Assert.NotNull(createNotificationHubResponse.Value); //Create a notificationHub AuthorizationRule var authorizationRuleName = TestUtilities.GenerateName(NotificationHubsManagementHelper.AuthorizationRulesPrefix); string createPrimaryKey = HttpMockServer.GetVariable("CreatePrimaryKey", NotificationHubsManagementHelper.GenerateRandomKey()); var createAutorizationRuleParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters() { Name = authorizationRuleName, Properties = new SharedAccessAuthorizationRuleProperties() { KeyName = authorizationRuleName, Rights = new List <AccessRights>() { AccessRights.Listen, AccessRights.Send }, PrimaryKey = createPrimaryKey, SecondaryKey = NotificationHubsManagementHelper.GenerateRandomKey(), ClaimType = "SharedAccessKey", ClaimValue = "None" } }; var createNotificationHubAuthorizationRuleResponse = NotificationHubsManagementClient.NotificationHubs.CreateOrUpdateAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName, createAutorizationRuleParameter); Assert.NotNull(createNotificationHubAuthorizationRuleResponse); Assert.NotNull(createNotificationHubAuthorizationRuleResponse.Value); Assert.Equal(createNotificationHubAuthorizationRuleResponse.Value.Name, createAutorizationRuleParameter.Properties.KeyName); Assert.Equal(createNotificationHubAuthorizationRuleResponse.Value.Properties.PrimaryKey, createAutorizationRuleParameter.Properties.PrimaryKey); Assert.True(createNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Count == createAutorizationRuleParameter.Properties.Rights.Count); foreach (var right in createAutorizationRuleParameter.Properties.Rights) { Assert.True(createNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Any(r => r == right)); } TestUtilities.Wait(TimeSpan.FromSeconds(5)); //Get created notificationHub AuthorizationRules var getNotificationHubAuthorizationRulesResponse = NotificationHubsManagementClient.NotificationHubs.GetAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName); Assert.NotNull(getNotificationHubAuthorizationRulesResponse); Assert.NotNull(getNotificationHubAuthorizationRulesResponse.Value); Assert.Equal(getNotificationHubAuthorizationRulesResponse.Value.Name, createAutorizationRuleParameter.Properties.KeyName); Assert.Equal(getNotificationHubAuthorizationRulesResponse.Value.Properties.PrimaryKey, createAutorizationRuleParameter.Properties.PrimaryKey); Assert.True(getNotificationHubAuthorizationRulesResponse.Value.Properties.Rights.Count == createAutorizationRuleParameter.Properties.Rights.Count); foreach (var right in createAutorizationRuleParameter.Properties.Rights) { Assert.True(getNotificationHubAuthorizationRulesResponse.Value.Properties.Rights.Any(r => r == right)); } //Get all notificationHub AuthorizationRules var getAllNotificationHubAuthorizationRulesResponse = NotificationHubsManagementClient.NotificationHubs.ListAuthorizationRules(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getAllNotificationHubAuthorizationRulesResponse); Assert.NotNull(getAllNotificationHubAuthorizationRulesResponse.Value); Assert.True(getAllNotificationHubAuthorizationRulesResponse.Value.Count > 1); Assert.True(getAllNotificationHubAuthorizationRulesResponse.Value.Any(ns => ns.Name == authorizationRuleName)); //Update notificationHub authorizationRule var updateNotificationHubAuthorizationRuleParameter = new SharedAccessAuthorizationRuleCreateOrUpdateParameters(getNotificationHubAuthorizationRulesResponse.Value.Properties); string updatePrimaryKey = HttpMockServer.GetVariable("UpdatePrimaryKey", NotificationHubsManagementHelper.GenerateRandomKey()); updateNotificationHubAuthorizationRuleParameter.Properties.Rights = new List <AccessRights>() { AccessRights.Listen }; updateNotificationHubAuthorizationRuleParameter.Properties.PrimaryKey = updatePrimaryKey; var updateNotificationHubAuthorizationRuleResponse = NotificationHubsManagementClient.NotificationHubs.CreateOrUpdateAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName, updateNotificationHubAuthorizationRuleParameter); Assert.NotNull(updateNotificationHubAuthorizationRuleResponse); Assert.NotNull(updateNotificationHubAuthorizationRuleResponse.Value); Assert.Equal(authorizationRuleName, updateNotificationHubAuthorizationRuleResponse.Value.Name); Assert.Equal(updateNotificationHubAuthorizationRuleResponse.Value.Properties.PrimaryKey, updateNotificationHubAuthorizationRuleParameter.Properties.PrimaryKey); Assert.Equal(updateNotificationHubAuthorizationRuleResponse.Value.Properties.KeyName, updateNotificationHubAuthorizationRuleParameter.Properties.KeyName); Assert.True(updateNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Count == updateNotificationHubAuthorizationRuleParameter.Properties.Rights.Count); foreach (var right in updateNotificationHubAuthorizationRuleParameter.Properties.Rights) { Assert.True(updateNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Any(r => r.Equals(right))); } TestUtilities.Wait(TimeSpan.FromSeconds(5)); //Get the updated notificationHub AuthorizationRule var getNotificationHubAuthorizationRuleResponse = NotificationHubsManagementClient.NotificationHubs.GetAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName); Assert.NotNull(getNotificationHubAuthorizationRuleResponse); Assert.NotNull(getNotificationHubAuthorizationRuleResponse.Value); Assert.Equal(authorizationRuleName, getNotificationHubAuthorizationRuleResponse.Value.Name); Assert.Equal(getNotificationHubAuthorizationRuleResponse.Value.Properties.PrimaryKey, updateNotificationHubAuthorizationRuleParameter.Properties.PrimaryKey); Assert.Equal(getNotificationHubAuthorizationRuleResponse.Value.Properties.KeyName, updateNotificationHubAuthorizationRuleParameter.Properties.KeyName); Assert.True(getNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Count == updateNotificationHubAuthorizationRuleParameter.Properties.Rights.Count); foreach (var right in updateNotificationHubAuthorizationRuleParameter.Properties.Rights) { Assert.True(getNotificationHubAuthorizationRuleResponse.Value.Properties.Rights.Any(r => r.Equals(right))); } //Get the connectionString to the namespace for a Authorization rule created at notificationHub level var listKeysResponse = NotificationHubsManagementClient.NotificationHubs.ListKeys(resourceGroup, namespaceName, notificationHubName, authorizationRuleName); Assert.NotNull(listKeysResponse); Assert.NotNull(listKeysResponse.PrimaryConnectionString); Assert.NotNull(listKeysResponse.PrimaryConnectionString.Contains(getNotificationHubAuthorizationRuleResponse.Value.Properties.PrimaryKey)); Assert.NotNull(listKeysResponse.SecondaryConnectionString); Assert.NotNull(listKeysResponse.SecondaryConnectionString.Contains(getNotificationHubAuthorizationRuleResponse.Value.Properties.SecondaryKey)); //Delete notificationHub authorizationRule var deleteResponse = NotificationHubsManagementClient.NotificationHubs.DeleteAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName); Assert.NotNull(deleteResponse); Assert.Equal(deleteResponse.StatusCode, HttpStatusCode.OK); TestUtilities.Wait(TimeSpan.FromSeconds(5)); try { NotificationHubsManagementClient.NotificationHubs.GetAuthorizationRule(resourceGroup, namespaceName, notificationHubName, authorizationRuleName); Assert.True(false, "this step should have failed"); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.NotFound, ex.Response.StatusCode); } //Delete namespace var deleteNSResponse = NotificationHubsManagementClient.Namespaces.Delete(resourceGroup, namespaceName); Assert.NotNull(deleteNSResponse); Assert.True(HttpStatusCode.NotFound == deleteNSResponse.StatusCode || HttpStatusCode.OK == deleteNSResponse.StatusCode); } }
public void NotificationHubCreateGetUpdateDelete() { using (var context = UndoContext.Current) { context.Start("ScenarioTests", "NotificationHubCreateGetUpdateDelete"); var location = NotificationHubsManagementHelper.DefaultLocation; var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location); if (string.IsNullOrWhiteSpace(resourceGroup)) { resourceGroup = TestUtilities.GenerateName(NotificationHubsManagementHelper.ResourceGroupPrefix); this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup); } var namespaceName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NamespacePrefix); var createNamespaceResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdate(resourceGroup, namespaceName, new NamespaceCreateOrUpdateParameters() { Location = location, Properties = new NamespaceProperties() { NamespaceType = NamespaceType.NotificationHub } }); Assert.NotNull(createNamespaceResponse); Assert.NotNull(createNamespaceResponse.Value); Assert.Equal(createNamespaceResponse.Value.Properties.Name, namespaceName); TestUtilities.Wait(TimeSpan.FromSeconds(30)); //Get the created namespace var getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.NotNull(getNamespaceResponse.Value); if (string.Compare(getNamespaceResponse.Value.Properties.ProvisioningState, "Succeeded", true) != 0) { TestUtilities.Wait(TimeSpan.FromSeconds(5)); } Assert.Equal("Succeeded", getNamespaceResponse.Value.Properties.ProvisioningState, StringComparer.CurrentCultureIgnoreCase); Assert.Equal("Active", getNamespaceResponse.Value.Properties.Status, StringComparer.CurrentCultureIgnoreCase); //Create a notificationHub var notificationHubList = CreateNotificationHubs(location, resourceGroup, namespaceName, 1); var notificationHubName = notificationHubList.FirstOrDefault(); //Get the created notificationHub var getNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubResponse); Assert.NotNull(getNotificationHubResponse.Value); Assert.Equal(getNotificationHubResponse.Value.Name, notificationHubName); //Get all namespaces created within a namespace var getAllNotificationHubsResponse = NotificationHubsManagementClient.NotificationHubs.List(resourceGroup, namespaceName); Assert.NotNull(getAllNotificationHubsResponse); Assert.NotNull(getAllNotificationHubsResponse.Value); Assert.True(getAllNotificationHubsResponse.Value.Count >= 1); Assert.True(getAllNotificationHubsResponse.Value.Any(nh => string.Compare(nh.Name, notificationHubName, true) == 0)); Assert.True(getAllNotificationHubsResponse.Value.All(nh => nh.Id.Contains(resourceGroup))); //Update notificationHub tags and add PNS credentials var updateNotificationHubParameter = new NotificationHubCreateOrUpdateParameters() { Location = location, Properties = new NotificationHubProperties() { WnsCredential = new WnsCredential() { Properties = new WnsCredentialProperties() { PackageSid = "ms-app://s-1-15-2-1817505189-427745171-3213743798-2985869298-800724128-1004923984-4143860699", SecretKey = "w7TBprR-9tJxn9mUOdK4PPHLCAzSYFhp", WindowsLiveEndpoint = @"http://pushtestservice.cloudapp.net/LiveID/accesstoken.srf" } } } }; updateNotificationHubParameter.Tags.Add(new KeyValuePair <string, string>("tag1", "value1")); updateNotificationHubParameter.Tags.Add(new KeyValuePair <string, string>("tag2", "value2")); updateNotificationHubParameter.Tags.Add(new KeyValuePair <string, string>("tag3", "value3")); var jsonStr = NotificationHubsManagementHelper.ConvertObjectToJSon(updateNotificationHubParameter); var updateNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Update(resourceGroup, namespaceName, notificationHubName, updateNotificationHubParameter); Assert.NotNull(updateNotificationHubResponse); Assert.NotNull(updateNotificationHubResponse.Value); TestUtilities.Wait(TimeSpan.FromSeconds(30)); //Get the updated notificationHub getNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubResponse); Assert.NotNull(getNotificationHubResponse.Value); Assert.Equal(getNotificationHubResponse.Value.Tags.Count, 3); foreach (var tag in updateNotificationHubParameter.Tags) { Assert.True(getNotificationHubResponse.Value.Tags.Any(t => t.Key.Equals(tag.Key))); Assert.True(getNotificationHubResponse.Value.Tags.Any(t => t.Value.Equals(tag.Value))); } //Get the updated notificationHub PNSCredentials var getNotificationHubPnsCredentialsResponse = NotificationHubsManagementClient.NotificationHubs.GetPnsCredentials(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubPnsCredentialsResponse); Assert.NotNull(getNotificationHubPnsCredentialsResponse.Value); Assert.Equal(notificationHubName, getNotificationHubPnsCredentialsResponse.Value.Name); Assert.NotNull(getNotificationHubPnsCredentialsResponse.Value.Properties); Assert.NotNull(getNotificationHubPnsCredentialsResponse.Value.Properties.WnsCredential); Assert.Equal(getNotificationHubPnsCredentialsResponse.Value.Properties.WnsCredential.Properties.PackageSid, updateNotificationHubParameter.Properties.WnsCredential.Properties.PackageSid); Assert.Equal(getNotificationHubPnsCredentialsResponse.Value.Properties.WnsCredential.Properties.SecretKey, updateNotificationHubParameter.Properties.WnsCredential.Properties.SecretKey); Assert.Equal(getNotificationHubPnsCredentialsResponse.Value.Properties.WnsCredential.Properties.WindowsLiveEndpoint, updateNotificationHubParameter.Properties.WnsCredential.Properties.WindowsLiveEndpoint); //Delete notificationHub var deleteResponse = NotificationHubsManagementClient.NotificationHubs.Delete(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(deleteResponse); Assert.Equal(deleteResponse.StatusCode, HttpStatusCode.OK); TestUtilities.Wait(TimeSpan.FromSeconds(30)); try { NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.True(false, "this step should have failed"); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.NotFound, ex.Response.StatusCode); } //Delete namespace var deleteNSResponse = NotificationHubsManagementClient.Namespaces.Delete(resourceGroup, namespaceName); Assert.NotNull(deleteNSResponse); Assert.True(HttpStatusCode.NotFound == deleteNSResponse.StatusCode || HttpStatusCode.OK == deleteNSResponse.StatusCode); } }
public void NotificationHubCreateGetUpdateDelete() { using (MockContext context = MockContext.Start(this.GetType().FullName)) { InitializeClients(context); var location = NotificationHubsManagementHelper.DefaultLocation; var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location); if (string.IsNullOrWhiteSpace(resourceGroup)) { resourceGroup = TestUtilities.GenerateName(NotificationHubsManagementHelper.ResourceGroupPrefix); this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup); } var namespaceName = TestUtilities.GenerateName(NotificationHubsManagementHelper.NamespacePrefix); var createNamespaceResponse = NotificationHubsManagementClient.Namespaces.CreateOrUpdate(resourceGroup, namespaceName, new NamespaceCreateOrUpdateParameters() { Location = location }); Assert.NotNull(createNamespaceResponse); Assert.Equal(createNamespaceResponse.Name, namespaceName); ActivateNamespace(resourceGroup, namespaceName); //Get the created namespace var getNamespaceResponse = NotificationHubsManagementClient.Namespaces.Get(resourceGroup, namespaceName); Assert.NotNull(getNamespaceResponse); Assert.Equal("Succeeded", getNamespaceResponse.ProvisioningState, StringComparer.CurrentCultureIgnoreCase); Assert.Equal("Active", getNamespaceResponse.Status, StringComparer.CurrentCultureIgnoreCase); var createParameter = new NotificationHubCreateOrUpdateParameters() { Location = location, WnsCredential = new WnsCredential() { PackageSid = "ms-app://s-1-15-2-1817505189-427745171-3213743798-2985869298-800724128-1004923984-4143860699", SecretKey = "w7TBprR-9tJxn9mUOdK4PPHLCAzSYFhp", WindowsLiveEndpoint = @"http://pushtestservice.cloudapp.net/LiveID/accesstoken.srf" }, ApnsCredential = new ApnsCredential() { KeyId = "TXRXD9P6K7", AppId = "EF9WEB9D5K", AppName = "Sample", Token = "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgpVB15km4qskA5Ra5XvdtOwWPvaXIhVVQZdonzINh+hGgCgYIKoZIzj0DAQehRANCAASS3ek04J20BqA6WWDlD6+xd3dJEifhW87wI0nnkfUB8LDb424TiWlzGIgnxV79hb3QHCAUNsPdBfLLF+Od8yqL", Endpoint = "https://api.push.apple.com:443/3/device" } }; //Create a notificationHub var notificationHubList = CreateNotificationHubs(location, resourceGroup, namespaceName, 1, createParameter); var notificationHubName = notificationHubList.FirstOrDefault(); //Get the created notificationHub var getNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubResponse); Assert.Equal(getNotificationHubResponse.Name, notificationHubName); //Get all namespaces created within a namespace var getAllNotificationHubsResponse = NotificationHubsManagementClient.NotificationHubs.List(resourceGroup, namespaceName); Assert.NotNull(getAllNotificationHubsResponse); Assert.True(getAllNotificationHubsResponse.Count() >= 1); Assert.Contains(getAllNotificationHubsResponse, nh => string.Compare(nh.Name, notificationHubName, true) == 0); Assert.True(getAllNotificationHubsResponse.All(nh => nh.Id.Contains(resourceGroup))); var getNotificationHubPnsCredentialsResponse = NotificationHubsManagementClient.NotificationHubs.GetPnsCredentials(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubPnsCredentialsResponse); Assert.NotNull(getNotificationHubPnsCredentialsResponse); Assert.Equal(notificationHubName, getNotificationHubPnsCredentialsResponse.Name); Assert.NotNull(getNotificationHubPnsCredentialsResponse.WnsCredential); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.PackageSid, createParameter.WnsCredential.PackageSid); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.SecretKey, createParameter.WnsCredential.SecretKey); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.WindowsLiveEndpoint, createParameter.WnsCredential.WindowsLiveEndpoint); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.KeyId, createParameter.ApnsCredential.KeyId); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.Token, createParameter.ApnsCredential.Token); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.AppId, createParameter.ApnsCredential.AppId); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.AppName, createParameter.ApnsCredential.AppName); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.Endpoint, createParameter.ApnsCredential.Endpoint); //Update notificationHub tags and add PNS credentials var updateNotificationHubParameter = new NotificationHubCreateOrUpdateParameters() { Location = location, Tags = new Dictionary <string, string>() { { "tag1", "value1" }, { "tag2", "value2" }, { "tag3", "value3" }, }, WnsCredential = new WnsCredential() { PackageSid = "ms-app://s-1-15-2-1817505189-427745171-3213743798-2985869298-800724128-1004923984-4143860699", SecretKey = "w7TBprR-9tJxn9mUOdK4PPHLCAzSYFhp", WindowsLiveEndpoint = @"http://pushtestservice.cloudapp.net/LiveID/accesstoken.srf" }, ApnsCredential = new ApnsCredential() { KeyId = "TXRXD9P6K7", AppId = "EF9WEB9D5K", AppName = "Sample2", Token = "MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgpVB15km4qskA5Ra5XvdtOwWPvaXIhVVQZdonzINh+hGgCgYIKoZIzj0DAQehRANCAASS3ek04J20BqA6WWDlD6+xd3dJEifhW87wI0nnkfUB8LDb424TiWlzGIgnxV79hb3QHCAUNsPdBfLLF+Od8yqL", Endpoint = "https://api.push.apple.com:443/3/device" } }; var jsonStr = NotificationHubsManagementHelper.ConvertObjectToJSon(updateNotificationHubParameter); var updateNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.CreateOrUpdate(resourceGroup, namespaceName, notificationHubName, updateNotificationHubParameter); Assert.NotNull(updateNotificationHubResponse); TestUtilities.Wait(TimeSpan.FromSeconds(30)); //Get the updated notificationHub getNotificationHubResponse = NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubResponse); Assert.Equal(3, getNotificationHubResponse.Tags.Count); foreach (var tag in updateNotificationHubParameter.Tags) { Assert.Contains(getNotificationHubResponse.Tags, t => t.Key.Equals(tag.Key)); Assert.Contains(getNotificationHubResponse.Tags, t => t.Value.Equals(tag.Value)); } //Get the updated notificationHub PNSCredentials getNotificationHubPnsCredentialsResponse = NotificationHubsManagementClient.NotificationHubs.GetPnsCredentials(resourceGroup, namespaceName, notificationHubName); Assert.NotNull(getNotificationHubPnsCredentialsResponse); Assert.Equal(notificationHubName, getNotificationHubPnsCredentialsResponse.Name); Assert.NotNull(getNotificationHubPnsCredentialsResponse.WnsCredential); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.PackageSid, updateNotificationHubParameter.WnsCredential.PackageSid); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.SecretKey, updateNotificationHubParameter.WnsCredential.SecretKey); Assert.Equal(getNotificationHubPnsCredentialsResponse.WnsCredential.WindowsLiveEndpoint, updateNotificationHubParameter.WnsCredential.WindowsLiveEndpoint); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.KeyId, updateNotificationHubParameter.ApnsCredential.KeyId); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.Token, updateNotificationHubParameter.ApnsCredential.Token); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.AppId, updateNotificationHubParameter.ApnsCredential.AppId); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.AppName, updateNotificationHubParameter.ApnsCredential.AppName); Assert.Equal(getNotificationHubPnsCredentialsResponse.ApnsCredential.Endpoint, updateNotificationHubParameter.ApnsCredential.Endpoint); //Delete notificationHub NotificationHubsManagementClient.NotificationHubs.Delete(resourceGroup, namespaceName, notificationHubName); TestUtilities.Wait(TimeSpan.FromSeconds(30)); try { NotificationHubsManagementClient.NotificationHubs.Get(resourceGroup, namespaceName, notificationHubName); Assert.True(false, "this step should have failed"); } catch (CloudException ex) { Assert.Equal(HttpStatusCode.NotFound, ex.Response.StatusCode); } try { //Delete namespace NotificationHubsManagementClient.Namespaces.Delete(resourceGroup, namespaceName); } catch (Exception ex) { Assert.Contains("NotFound", ex.Message); } } }