public void Queue_CreateResourceToken_ReturnsCorrectHostPath() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); // Act. ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Read, Expiration = DateTime.Now + TimeSpan.FromDays(1) }); // Assert. Assert.IsNotNull(token); SASParts parts = new SASParts(token.Uri); Assert.AreEqual("https://test.queue.core.windows.net/queue", parts.HostName); }
public void Queue_CreateResourceToken_WithExpirationDate_ReturnsCorrectExpirationDate() { // Setup DateTime expiration = new DateTime(2199, 3, 12, 1, 2, 3, DateTimeKind.Utc); AzureQueueBroker broker = new AzureQueueBroker(); // Act. ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Read, Expiration = expiration }); // Assert. Assert.IsNotNull(token); SASParts parts = new SASParts(token.Uri); Assert.AreEqual("2199-03-12T01%3A02%3A03Z", parts.Value("se")); }
public void Queue_CreateResourceToken_WithNoExpirationDate_ReturnsNoExpirationDate() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); // Act. ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Read }); // Assert. Assert.IsNotNull(token); SASParts parts = new SASParts(token.Uri); Assert.AreEqual(null, parts.Value("se")); }
public void Queue_ExtractConnectionString_WithTableConnectionString_ThrowsException() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); Dictionary<string, string> appSettings = new Dictionary<string, string>(); appSettings.Add("ResourceBrokerTableConnectionString", ConnectionString); // Act this.ExpectException<InvalidOperationException>(() => broker.ExtractConnectionString(appSettings)); }
public void Queue_ExtractConnectionString_AppSettingsQueueConnectionString_ReturnsQueueConnectionString() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); Dictionary<string, string> appSettings = new Dictionary<string, string>(); appSettings.Add("ResourceBrokerQueueConnectionString", ConnectionString); // Act string c = broker.ExtractConnectionString(appSettings); // Assert Assert.AreEqual(c, ConnectionString); }
public void Queue_ExtractConnectionString_AppSettingsQueueConnectionStringIsNull_ThrowsArgumentException() { AzureQueueBroker broker = new AzureQueueBroker(); Dictionary<string, string> appSettings = new Dictionary<string, string>(); appSettings.Add("ResourceBrokerQueueConnectionString", null); this.ExpectException<InvalidOperationException>(() => broker.ExtractConnectionString(appSettings)); }
public void Queue_CreateResourceToken_WithDeletePermissions_IgnoresProcessPermissions() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); // Act ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Read | ResourcePermissions.Delete, Expiration = DateTime.Now + TimeSpan.FromDays(1) }); // Assert. Assert.IsNotNull(token); SASParts parts = new SASParts(token.Uri); Assert.AreEqual("r", parts.Value("sp")); }
public void Queue_CreateResourceToken_WithAddUpdateProcessPermissions_ReturnsCorrectAccess() { AzureQueueBroker broker = new AzureQueueBroker(); // Act ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Add | ResourcePermissions.Update | ResourcePermissions.Process, Expiration = DateTime.Now + TimeSpan.FromDays(1) }); // Assert. Assert.IsNotNull(token); SASParts parts = new SASParts(token.Uri); Assert.AreEqual("aup", parts.Value("sp")); }
public void Queue_CreateResourceToken_ReturnsExpectedStartDate() { // Setup AzureQueueBroker broker = new AzureQueueBroker(); // Act. ResourceToken token = broker.CreateResourceToken(ConnectionString, new ResourceParameters { Name = "queue", Permissions = ResourcePermissions.Read }); // Assert. Assert.IsNotNull(token); // Calculate the expected start time give or take 4 seconds. DateTime startRangeBegin = DateTime.UtcNow - TimeSpan.FromMinutes(5) - TimeSpan.FromSeconds(2); DateTime startRangeEnd = startRangeBegin + TimeSpan.FromSeconds(2); // Now convert these into strings using the SAS format. string startRangeBeginString = this.DateTimeToSASDateString(startRangeBegin); string startRangeEndString = this.DateTimeToSASDateString(startRangeEnd); // Get the actual begin time from the SAS token. SASParts parts = new SASParts(token.Uri); string beginning = parts.Value("st"); // Make sure it is within the range. Assert.IsTrue(string.CompareOrdinal(beginning, startRangeBeginString) >= 0 && string.CompareOrdinal(beginning, startRangeEndString) <= 0); }