Ejemplo n.º 1
0
        public void GetAllProperties_Overrides_Properties_Of_Base_Node_Types()
        {
            // Arrange
            var switchNodeType = new ToscaNodeType();

            switchNodeType.Properties.Add("speed", new ToscaProperty
            {
                Type        = "string",
                Default     = "10MBps",
                Required    = true,
                Description = "switch description",
                Tags        = new List <string>(new [] { "read_only" })
            });
            var nxosNodeType = new ToscaNodeType {
                DerivedFrom = "cloudshell.nodes.Switch"
            };

            nxosNodeType.Properties.Add("speed", new ToscaProperty
            {
                Type        = "string",
                Default     = "1GBps",
                Required    = false,
                Description = "nxos description",
                Tags        = new List <string>(new[] { "admin_only" })
            });

            var serviceTemplate = new ToscaServiceTemplate {
                ToscaDefinitionsVersion = "tosca_simple_yaml_1_0"
            };

            serviceTemplate.NodeTypes.Add("cloudshell.nodes.Switch", switchNodeType);
            serviceTemplate.NodeTypes.Add("vendor.switch.NXOS", nxosNodeType);

            var cloudServiceArchive = new ToscaCloudServiceArchive(new ToscaMetadata
            {
                CreatedBy            = "Anonymous",
                CsarVersion          = new Version(1, 1),
                EntryDefinitions     = "tosca.yaml",
                ToscaMetaFileVersion = new Version(1, 1)
            });

            cloudServiceArchive.AddToscaServiceTemplate("tosca.yaml", serviceTemplate);

            var validationResults = new List <ValidationResult>();

            cloudServiceArchive.TryValidate(out validationResults).Should()
            .BeTrue(string.Join(Environment.NewLine, validationResults.Select(r => r.ErrorMessage)));

            // Act
            var allProperties = nxosNodeType.GetAllProperties();

            // Assert
            allProperties["speed"].Default.Should().Be("1GBps");
            allProperties["speed"].Required.Should().BeFalse();
            allProperties["speed"].Description.Should().Be("nxos description");
            allProperties["speed"].Tags.ShouldAllBeEquivalentTo(new [] { "admin_only" });
        }
Ejemplo n.º 2
0
        public void GetAllProperties_Return_Properties_Of_Base_Node_Types()
        {
            // Arrange
            var switchNodeType = new ToscaNodeType();

            switchNodeType.Properties.Add("speed", new ToscaProperty {
                Type = "string"
            });
            var nxosNodeType = new ToscaNodeType {
                DerivedFrom = "cloudshell.nodes.Switch"
            };

            nxosNodeType.Properties.Add("storage", new ToscaProperty {
                Type = "string"
            });

            var serviceTemplate = new ToscaServiceTemplate {
                ToscaDefinitionsVersion = "tosca_simple_yaml_1_0"
            };

            serviceTemplate.NodeTypes.Add("cloudshell.nodes.Switch", switchNodeType);
            serviceTemplate.NodeTypes.Add("vendor.switch.NXOS", nxosNodeType);

            var cloudServiceArchive = new ToscaCloudServiceArchive(new ToscaMetadata
            {
                CreatedBy            = "Anonymous",
                CsarVersion          = new Version(1, 1),
                EntryDefinitions     = "tosca.yaml",
                ToscaMetaFileVersion = new Version(1, 1)
            });

            cloudServiceArchive.AddToscaServiceTemplate("tosca.yaml", serviceTemplate);

            var validationResults = new List <ValidationResult>();

            cloudServiceArchive.TryValidate(out validationResults).Should()
            .BeTrue(string.Join(Environment.NewLine, validationResults.Select(r => r.ErrorMessage)));

            // Act
            var allProperties = nxosNodeType.GetAllProperties();

            // Assert
            allProperties.Should().Contain(a => a.Key == "speed");
            allProperties.Should().Contain(a => a.Key == "storage");
        }