/// <inheritdoc />
        public GeneratedCode GenerateTypeCode(Type type)
        {
            var typeMetadata = _metadataGenerator.GetMetadata(type);
            var outputType   = _outputTypeMetadataGenerator.Generate(typeMetadata).OutputType;

            var fileParts = _typePartsCodeGenerator.GetFilePathParts(outputType);
            var code      = _codeGenerator.GenerateCode(outputType);

            return(new GeneratedCode {
                Code = code, FilePathSegments = fileParts
            });
        }
        public void GenerateIntMetadata()
        {
            var meta = _generator.GetMetadata(nameof(MainClass.IntValue).GetPropertyInfo <MainClass>());

            Assert.Equal("IntValue", meta.PropertyName);
            Assert.False(meta.PropertyType.IsEnum);
            Assert.False(meta.PropertyType.IsEnumerable);
            Assert.False(meta.PropertyType.IsGeneric);
        }