Beispiel #1
0
        public void CreateEnum()
        {
            // arrange
            DocumentNode document = Parser.Default.Parse(
                "enum Abc { A B C }");
            EnumTypeDefinitionNode typeDefinition = document
                                                    .Definitions.OfType <EnumTypeDefinitionNode>().First();

            var context       = new SchemaContext();
            var configuration = new SchemaConfiguration(
                context.RegisterServiceProvider,
                context.Types);

            // act
            var      factory  = new EnumTypeFactory();
            EnumType enumType = factory.Create(typeDefinition);

            configuration.RegisterType(enumType);

            var typeFinalizer = new TypeFinalizer(configuration);

            typeFinalizer.FinalizeTypes(context, null);

            // assert
            Assert.Equal("Abc", enumType.Name);
            Assert.Collection(enumType.Values,
                              t => Assert.Equal("A", t.Name),
                              t => Assert.Equal("B", t.Name),
                              t => Assert.Equal("C", t.Name));
        }
Beispiel #2
0
        public void CreateEnum()
        {
            // arrange
            EnumTypeDefinitionNode typeDefinition =
                CreateTypeDefinition <EnumTypeDefinitionNode>(
                    "enum Abc { A B C }");

            // act
            var      factory = new EnumTypeFactory();
            EnumType type    = factory.Create(typeDefinition);

            CompleteType(type);

            // assert
            Assert.Equal("Abc", type.Name);
            Assert.Collection(type.Values,
                              t => Assert.Equal("A", t.Name),
                              t => Assert.Equal("B", t.Name),
                              t => Assert.Equal("C", t.Name));
        }
Beispiel #3
0
        public void EnumValueDeprecationReason()
        {
            // arrange
            EnumTypeDefinitionNode typeDefinition =
                CreateTypeDefinition <EnumTypeDefinitionNode>(@"
                    enum Abc {
                        A
                        B @deprecated(reason: ""reason123"")
                        C
                    }");

            // act
            var      factory = new EnumTypeFactory();
            EnumType type    = factory.Create(typeDefinition);

            CompleteType(type);

            // assert
            EnumValue value = type.Values.FirstOrDefault(t => t.Name == "B");

            Assert.NotNull(value);
            Assert.True(value.IsDeprecated);
            Assert.Equal("reason123", value.DeprecationReason);
        }
 protected override void VisitEnumTypeDefinition(
     EnumTypeDefinitionNode node)
 {
     _typeRegistry.RegisterType(_enumTypeFactory.Create(node));
 }