Exemplo n.º 1
0
 /// <summary>
 /// Helper method used to convert an IEnumerable(EntityProperty) to a IEnumerable(ResourceProperty)
 /// </summary>
 /// <param name="entityProperties">IEnumerable of EntityProperties</param>
 /// <param name="resourceClassBase">Resource object</param>
 /// <returns></returns>
 public static IEnumerable <ResourceProperty> ToResourceProperties(
     this IEnumerable <EntityProperty> entityProperties,
     ResourceClassBase resourceClassBase)
 {
     return
         (entityProperties
          .Where(property => ResourceSpecification.IsAllowableResourceProperty(property.PropertyName))
          .Select(property => property.ToResourceProperty(resourceClassBase)));
 }
Exemplo n.º 2
0
        public void Parser_should_parse()
        {
            // Prepare
            var tree = new ResourceTree();

            tree.Location = "myLocation";
            var resources      = new List <ResourceSpecification>();
            var storageAccount = new ResourceSpecification
            {
                ResourceType = "StorageAccount"
            };

            storageAccount.ListProperties.Add("containers", new[] { "abc" });
            storageAccount.StringProperties.Add("queues", "queueName");
            storageAccount.StringProperties.Add("ResourceGroup", "someGroup");
            storageAccount.ListProperties.Add("name", new string[] { "a", "name" });
            resources.Add(storageAccount);
            var resourceGroup = new ResourceSpecification
            {
                ResourceType = "ResourceGroup",
            };

            resourceGroup.StringProperties.Add("Location", "otherLocation");
            resources.Add(resourceGroup);
            tree.Resources = resources;

            // Execute
            var context = Parser.Parse(tree);

            // Assess
            Assert.Equal(tree.Location, context.DefaultLocation);
            var parsedStorageAccount = context.Resources.FirstOrDefault(resource =>
                                                                        resource.GetType() == typeof(StorageAccount) &&
                                                                        resource.Name == "a name" &&
                                                                        ((StorageAccount)resource).Containers.Length == 1 &&
                                                                        ((StorageAccount)resource).Containers[0] == "abc" &&
                                                                        ((StorageAccount)resource).Queues.Length == 1 &&
                                                                        ((StorageAccount)resource).Queues[0] == "queueName"
                                                                        );

            Assert.NotNull(parsedStorageAccount);

            Assert.Single(context.ExplicitDependencyRequirements[parsedStorageAccount],
                          req =>
                          req.Property.PropertyType == typeof(ResourceGroup) &&
                          req.Property.Name == "ResourceGroup" &&
                          req.ValueName == "someGroup");

            Assert.Single(context.Resources, resource =>
                          resource.GetType() == typeof(ResourceGroup) &&
                          ((ResourceGroup)resource).Location == "otherLocation"
                          );
        }
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (ResourceSpecification == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "ResourceSpecification");
     }
     if (Name == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Name");
     }
     if (ResourceSpecification != null)
     {
         ResourceSpecification.Validate();
     }
 }
Exemplo n.º 4
0
        public void Parser_should_parse_ints()
        {
            // Prepare
            var tree      = new ResourceTree();
            var resources = new List <ResourceSpecification>();
            var snippet   = new ResourceSpecification
            {
                ResourceType = "Snippet",
            };

            snippet.StringProperties.Add("order", "3");
            resources.Add(snippet);
            tree.Resources = resources;

            // Execute
            var context = Parser.Parse(tree);

            // Assess
            var parsedSnippet = context.Resources.FirstOrDefault(resource =>
                                                                 resource.GetType() == typeof(Snippet));

            Assert.NotNull(parsedSnippet);
            Assert.Equal(3, parsedSnippet.Order);
        }