public MockStorageService Add(Action<StorageAccountData> dataSetter)
 {
     var account = new StorageAccountData();
     dataSetter(account);
     accounts.Add(account);
     return this;
 }
        StorageAccount IOperationSource <StorageAccount> .CreateResult(Response response, CancellationToken cancellationToken)
        {
            using var document = JsonDocument.Parse(response.ContentStream);
            var data = StorageAccountData.DeserializeStorageAccountData(document.RootElement);

            return(new StorageAccount(_armClient, data));
        }
Example #3
0
        public void ValidateStorageAccountData()
        {
            var data = new StorageAccountData(AzureLocation.AustraliaCentral);

            Assert.IsNull(data.KeyPolicy);
            Assert.IsNull(data.KeyExpirationPeriodInDays);

            Assert.IsFalse(data.GetType().GetProperty("KeyExpirationPeriodInDays").CanWrite);

            data = new StorageAccountData(
                null,
                null,
                new ResourceType("Microsoft.Storage/storageAccounts"),
                null,
                new Dictionary <string, string>(),
                AzureLocation.AustraliaCentral,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                new KeyPolicy(5),
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                new List <StoragePrivateEndpointConnectionData>(),
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null,
                null);

            Assert.IsNotNull(data.KeyPolicy);
            Assert.AreEqual(5, data.KeyExpirationPeriodInDays);
        }
Example #4
0
        internal static StorageAccountListResult DeserializeStorageAccountListResult(JsonElement element)
        {
            Optional <IReadOnlyList <StorageAccountData> > value = default;
            Optional <string> nextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <StorageAccountData> array = new List <StorageAccountData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(StorageAccountData.DeserializeStorageAccountData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new StorageAccountListResult(Optional.ToList(value), nextLink.Value));
        }
Example #5
0
        public MockStorageService Add(Action <StorageAccountData> dataSetter)
        {
            var account = new StorageAccountData();

            dataSetter(account);
            accounts.Add(account);
            return(this);
        }
Example #6
0
        public void InitilizeStubData()
        {
            string assetId = "nb:Id:" + Guid.NewGuid();

            StorageAccountData storageAccountData = new StorageAccountData
            {
                IsDefault = true,
                Name      = "test storage",
            };

            _persistedChanges.Add(StorageAccountBaseCollection.EntitySet,
                                  new List <StorageAccountData>
            {
                storageAccountData
            });

            AssetData assetData = new AssetData()
            {
                Id           = assetId,
                AlternateId  = String.Empty,
                Created      = DateTime.UtcNow,
                LastModified = DateTime.UtcNow,
                Name         = "Mock Asset",
                Options      = (int)AssetCreationOptions.None,
            };

            assetData.SetMediaContext(_mediaContextBase);
            _persistedChanges.Add(AssetCollection.AssetSet,
                                  new List <AssetData>
            {
                assetData
            });
            string accessPolicyId = Guid.NewGuid().ToString();

            AccessPolicyData accessPolicyData = new AccessPolicyData()
            {
                Id                = accessPolicyId,
                Name              = "Mock AccessPolicy",
                Created           = DateTime.UtcNow.AddDays(-1),
                DurationInMinutes = 10000,
                LastModified      = DateTime.UtcNow,
                Permissions       = (int)AccessPermissions.Read
            };

            accessPolicyData.SetMediaContext(_mediaContextBase);
            _persistedChanges.Add(AccessPolicyBaseCollection.AccessPolicySet,
                                  new List <AccessPolicyData>
            {
                accessPolicyData
            });

            LocatorData locatorData = new LocatorData()
            {
                Id             = Guid.NewGuid().ToString(),
                AssetId        = assetId,
                Name           = "Mock locator",
                AccessPolicyId = accessPolicyId,
                BaseUri        = "http://"
            };

            locatorData.SetMediaContext(_mediaContextBase);
            _persistedChanges.Add(LocatorBaseCollection.LocatorSet,
                                  new List <LocatorData>
            {
                locatorData
            });

            _persistedChanges.Add(AssetFileCollection.FileSet,
                                  new List <AssetFileData>
            {
                new AssetFileData()
                {
                    Id            = Guid.NewGuid().ToString(),
                    Created       = DateTime.UtcNow,
                    Name          = "Mock File",
                    ParentAssetId = assetId
                }
            });

            _persistedChanges.Add(MediaProcessorBaseCollection.MediaProcessorSet,
                                  new List <MediaProcessorData>
            {
                new MediaProcessorData()
                {
                    Id      = Guid.NewGuid().ToString(),
                    Name    = "Mock Processor",
                    Version = "1",
                    Vendor  = "mock"
                }
            });

            _persistedChanges.Add(JobBaseCollection.JobSet,
                                  new List <JobData>
            {
                new JobData()
                {
                    Id   = Guid.NewGuid().ToString(),
                    Name = "Mock Job",
                }
            });
        }
Example #7
0
        public async Task CreateUpdataNetworkRule()
        {
            //create storage account with network rule
            string accountName = await CreateValidAccountNameAsync(namePrefix);

            _resourceGroup = await CreateResourceGroupAsync();

            StorageAccountContainer        storageAccountContainer = _resourceGroup.GetStorageAccounts();
            StorageAccountCreateParameters parameters = GetDefaultStorageAccountParameters();

            parameters.NetworkRuleSet = new NetworkRuleSet(defaultAction: DefaultAction.Deny)
            {
                Bypass  = @"Logging, AzureServices",
                IpRules = { new IPRule(iPAddressOrRange: "23.45.67.89") }
            };
            StorageAccount account1 = (await storageAccountContainer.CreateOrUpdateAsync(accountName, parameters)).Value;

            VerifyAccountProperties(account1, false);

            //verify network rule
            StorageAccountData accountData = account1.Data;

            Assert.NotNull(accountData.NetworkRuleSet);
            Assert.AreEqual(@"Logging, AzureServices", accountData.NetworkRuleSet.Bypass.ToString());
            Assert.AreEqual(DefaultAction.Deny, accountData.NetworkRuleSet.DefaultAction);
            Assert.IsEmpty(accountData.NetworkRuleSet.VirtualNetworkRules);
            Assert.NotNull(accountData.NetworkRuleSet.IpRules);
            Assert.IsNotEmpty(accountData.NetworkRuleSet.IpRules);
            Assert.AreEqual("23.45.67.89", accountData.NetworkRuleSet.IpRules[0].IPAddressOrRange);
            Assert.AreEqual(DefaultAction.Allow.ToString(), accountData.NetworkRuleSet.IpRules[0].Action);

            //update network rule
            StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters()
            {
                NetworkRuleSet = new NetworkRuleSet(defaultAction: DefaultAction.Deny)
                {
                    Bypass  = @"Logging, Metrics",
                    IpRules = { new IPRule(iPAddressOrRange: "23.45.67.90"),
                                new IPRule(iPAddressOrRange: "23.45.67.91") }
                }
            };
            StorageAccount account2 = await account1.UpdateAsync(updateParameters);

            //verify updated network rule
            accountData = account2.Data;
            Assert.NotNull(accountData.NetworkRuleSet);
            Assert.AreEqual(@"Logging, Metrics", accountData.NetworkRuleSet.Bypass.ToString());
            Assert.AreEqual(DefaultAction.Deny, accountData.NetworkRuleSet.DefaultAction);
            Assert.IsEmpty(accountData.NetworkRuleSet.VirtualNetworkRules);
            Assert.NotNull(accountData.NetworkRuleSet.IpRules);
            Assert.IsNotEmpty(accountData.NetworkRuleSet.IpRules);
            Assert.AreEqual("23.45.67.90", accountData.NetworkRuleSet.IpRules[0].IPAddressOrRange);
            Assert.AreEqual(DefaultAction.Allow.ToString(), accountData.NetworkRuleSet.IpRules[0].Action);
            Assert.AreEqual("23.45.67.91", accountData.NetworkRuleSet.IpRules[1].IPAddressOrRange);
            Assert.AreEqual(DefaultAction.Allow.ToString(), accountData.NetworkRuleSet.IpRules[1].Action);

            //update network rule to allow
            updateParameters = new StorageAccountUpdateParameters()
            {
                NetworkRuleSet = new NetworkRuleSet(defaultAction: DefaultAction.Allow)
            };
            StorageAccount account3 = await account2.UpdateAsync(updateParameters);

            //verify updated network rule
            accountData = account3.Data;
            Assert.NotNull(accountData.NetworkRuleSet);
            Assert.AreEqual(@"Logging, Metrics", accountData.NetworkRuleSet.Bypass.ToString());
            Assert.AreEqual(DefaultAction.Allow, accountData.NetworkRuleSet.DefaultAction);
        }