public void Should_Set_Description_On_Class()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];

            specProperties.Description.Should().NotBe("");
        }
        public void Should_Set_Required()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];

            specProperties.Required.Should().Contain("required");
        }
        public void Should_Set_Required_Null_If_No_Required()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testStatusEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];

            specProperties.Required.Should().BeNull();
        }
        public void Should_Set_Pattern()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["pattern"];

            field.Pattern.Should().Be(@"/\d*/");
        }
        public void Should_Set_ExternalDocs_Description()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["externalDocsWithDescription"];

            field.ExternalDocs.Description.Should().NotBe("");
        }
        public void Should_Set_MultipleOf()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["multipleOf"];

            field.MultipleOf.Should().Be(15);
        }
Ejemplo n.º 7
0
        public void Should_Set_ExternalDocs()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity);

            var specProperties = crd.Spec.Versions.First().Schema.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["externalDocs"];

            field.ExternalDocs.Url.Should().NotBe("");
        }
Ejemplo n.º 8
0
        public void Should_Set_Description()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity);

            var specProperties = crd.Spec.Versions.First().Schema.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["description"];

            field.Description.Should().NotBe("");
        }
        public void Should_Set_RangeMaximum()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["rangeMaximum"];

            field.Maximum.Should().Be(15);
            field.ExclusiveMaximum.Should().BeTrue();
        }
        public void Should_Set_Length_Information()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["length"];

            field.MinLength.Should().Be(2);
            field.MaxLength.Should().Be(42);
        }
        public void Should_Set_Item_Information()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];
            var field          = specProperties.Properties["items"];

            field.Type.Should().Be("array");
            (field.Items as V1JSONSchemaProps)?.Type?.Should().Be("string");
            field.MaxItems.Should().Be(42);
            field.MinItems.Should().Be(13);
        }
        public void Should_Correctly_Translate_CRD()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();
            var ced = CustomEntityDefinitionExtensions.CreateResourceDefinition(_testSpecEntity);

            crd.Kind.Should().Be(V1CustomResourceDefinition.KubeKind);
            crd.Metadata.Name.Should().Be($"{ced.Plural}.{ced.Group}");
            crd.Spec.Names.Kind.Should().Be(ced.Kind);
            crd.Spec.Names.ListKind.Should().Be(ced.ListKind);
            crd.Spec.Names.Singular.Should().Be(ced.Singular);
            crd.Spec.Names.Plural.Should().Be(ced.Plural);
            crd.Spec.Scope.Should().Be(ced.Scope.ToString());
        }
        public void Should_Set_The_Correct_Array_Type()
        {
            var crd            = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();
            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];

            var normalField = specProperties.Properties["stringArray"];

            normalField.Type.Should().Be("array");
            (normalField.Items as V1JSONSchemaProps)?.Type?.Should().Be("string");
            normalField.Nullable.Should().BeNull();

            var nullableField = specProperties.Properties["nullableStringArray"];

            nullableField.Type.Should().Be("array");
            (nullableField.Items as V1JSONSchemaProps)?.Type?.Should().Be("string");
            nullableField.Nullable.Should().BeTrue();
        }
        public void Should_Set_The_Correct_Type_And_Format_For_Types(string fieldName, string typeName, string?format)
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            var specProperties = crd.Spec.Validation.OpenAPIV3Schema.Properties["spec"];

            specProperties.Type.Should().Be("object");

            var normalField = specProperties.Properties[$"normal{fieldName}"];

            normalField.Type.Should().Be(typeName);
            normalField.Format.Should().Be(format);
            normalField.Nullable.Should().BeNull();

            var nullableField = specProperties.Properties[$"nullable{fieldName}"];

            nullableField.Type.Should().Be(typeName);
            nullableField.Format.Should().Be(format);
            nullableField.Nullable.Should().BeTrue();
        }
        public void Should_Not_Add_Status_SubResource_If_Absent()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testSpecEntity).Convert();

            crd.Spec.Subresources?.Status?.Should().BeNull();
        }
        public void Should_Add_Status_SubResource_If_Present()
        {
            var crd = EntityToCrdExtensions.CreateCrd(_testStatusEntity).Convert();

            crd.Spec.Subresources.Status.Should().NotBeNull();
        }