public void MemberNullability(Nullability nullability, Type type, SchemaValueType valueType)
        {
            var config = new SchemaGeneratorConfiguration
            {
                Nullability = nullability
            };

            // Nullability affects root schema so only PropertiesKeywords are compared
            var expected = new JsonSchemaBuilder()
                           .Properties(
                (nameof(ReferenceMember.Property), new JsonSchemaBuilder().Type(valueType)))
                           .Build()
                           .Keywords
                           .OfType <PropertiesKeyword>()
                           .First();

            var actual = new JsonSchemaBuilder()
                         .FromType(type, config)
                         .Build()
                         .Keywords
                         .OfType <PropertiesKeyword>()
                         .First();

            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void CheckSimpleTypes(Type dotnetType, SchemaValueType schemaType)
        {
            JsonSchema expected = new JsonSchemaBuilder().Type(schemaType);

            JsonSchema actual = new JsonSchemaBuilder().FromType(dotnetType);

            Assert.AreEqual(expected, actual);
        }
        public void TypeNullability(Nullability nullability, Type type, SchemaValueType valueType)
        {
            var config = new SchemaGeneratorConfiguration
            {
                Nullability = nullability
            };

            var expected = new JsonSchemaBuilder()
                           .Type(valueType)
                           .Build();

            var actual = new JsonSchemaBuilder()
                         .FromType(type, config)
                         .Build();

            Assert.AreEqual(expected, actual);
        }
Example #4
0
        /// <summary>
        /// Creates a new <see cref="TypeKeyword"/>.
        /// </summary>
        /// <param name="types">The expected types.</param>
        public TypeKeyword(IEnumerable <SchemaValueType> types)
        {
            // TODO: protect input

            Type = types.Aggregate((x, y) => x | y);
        }
Example #5
0
        /// <summary>
        /// Creates a new <see cref="TypeKeyword"/>.
        /// </summary>
        /// <param name="types">The expected types.</param>
        public TypeKeyword(params SchemaValueType[] types)
        {
            // TODO: protect input

            Type = types.Aggregate((x, y) => x | y);
        }
Example #6
0
 /// <summary>
 /// Creates a new <see cref="TypeKeyword"/>.
 /// </summary>
 /// <param name="type">The expected type.</param>
 public TypeKeyword(SchemaValueType type)
 {
     Type = type;
 }
Example #7
0
 /// <summary>
 /// Creates a new <see cref="TypeIntent"/> instance.
 /// </summary>
 /// <param name="type">The type.</param>
 public TypeIntent(SchemaValueType type)
 {
     Type = type;
 }