public void T2_UseGlobalEnumForGlobalEnumAttribute()
        {
            var type   = GeneratedTypes.Single(type => type.Identifier.Text == nameof(GlobalEnumAttributeType));
            var prop   = type.Members.OfType <PropertyDeclarationSyntax>().SingleOrDefault(prop => prop.Identifier.Text == "language");
            var getter = prop.AccessorList.Accessors.Single(accessor => accessor.IsKind(SyntaxKind.GetAccessorDeclaration));
            var ret    = getter.DescendantNodes().OfType <ReturnStatementSyntax>().Last();

            Assert.IsTrue(ret.ToString().StartsWith($"return (({EnumTypesNamespace}.{nameof(LanguageCodeEnum)}"));
        }
        public void T3_UseNestedEnumForNestedEnumElement()
        {
            var type = GeneratedTypes.Single(type => type.Identifier.Text == nameof(NestedEnumElementType));

            Assert.AreEqual(1, type.Members.OfType <EnumDeclarationSyntax>().Count());
            var prop   = type.Members.OfType <PropertyDeclarationSyntax>().SingleOrDefault(prop => prop.Identifier.Text == "Language");
            var getter = prop.AccessorList.Accessors.Single(accessor => accessor.IsKind(SyntaxKind.GetAccessorDeclaration));
            var ret    = getter.DescendantNodes().OfType <ReturnStatementSyntax>().Last();

            Assert.IsTrue(ret.ToString().StartsWith($"return (({EnumTypesNamespace}.{nameof(NestedEnumElementType)}.{nameof(NestedEnumElementType.LanguageEnum)}"));
        }
        public void T5_DoNotRedefineDerivedNestedEnumAttribute()
        {
            var type = GeneratedTypes.Single(type => type.Identifier.Text == nameof(NestedDerivedEnumAttributeType));

            Assert.AreEqual(1, type.Members.OfType <EnumDeclarationSyntax>().Count());
        }