Repository: asyncapi/modelina
Pull request #467 (2021-10-14 11:51:16)

fix: proper model name rendering
**Description**
Currently, it is hard to figure out the rendered model name this PR addresses that.

**Related issue(s)**
Fixes https://github.com/asyncapi/modelina/issues/461

sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


jonaslagoni: > @jonaslagoni It should be review again?

Not quite yet, I'll re-request review from you when it's time 🙂 
sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Please retry analysis of this Pull-Request directly on [SonarCloud](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467).
sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: Kudos, SonarCloud Quality Gate passed!&nbsp; &nbsp; ![Quality Gate passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/passed-16px.png 'Quality Gate passed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=asyncapi_generator-model-sdk&pullRequest=467&resolved=false&types=CODE_SMELL)

[![No Coverage information](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/NoCoverageInfo-16px.png 'No Coverage information')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467) No Coverage information  
[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/3-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list) [0.0% Duplication](https://sonarcloud.io/component_measures?id=asyncapi_generator-model-sdk&pullRequest=467&metric=new_duplicated_lines_density&view=list)



Patch:
diff --git a/src/generators/AbstractGenerator.ts b/src/generators/AbstractGenerator.ts
index dba567fc..8eb722e6 100644
--- a/src/generators/AbstractGenerator.ts
+++ b/src/generators/AbstractGenerator.ts
@@ -50,9 +50,15 @@ export abstract class AbstractGenerator<Options extends CommonGeneratorOptions =
    */
   public async generateCompleteModels(input: Record<string, unknown> | CommonInputModel, options: RenderCompleteModelOptions): Promise<OutputModel[]> {
     const inputModel = await this.processInput(input);
-    const renders = Object.entries(inputModel.models).map(async ([modelName, model]) => {
+    const renders = Object.values(inputModel.models).map(async (model) => {
       const renderedOutput = await this.renderCompleteModel(model, inputModel, options);
-      return OutputModel.toOutputModel({ result: renderedOutput.result, model, modelName, inputModel, dependencies: renderedOutput.dependencies});
+      return OutputModel.toOutputModel({ 
+        result: renderedOutput.result,
+        modelName: renderedOutput.renderedName, 
+        dependencies: renderedOutput.dependencies,
+        model, 
+        inputModel
+      });
     });
     return Promise.all(renders);
   }
@@ -64,9 +70,15 @@ export abstract class AbstractGenerator<Options extends CommonGeneratorOptions =
    */
   public async generate(input: Record<string, unknown> | CommonInputModel): Promise<OutputModel[]> {
     const inputModel = await this.processInput(input);
-    const renders = Object.entries(inputModel.models).map(async ([modelName, model]) => {
+    const renders = Object.values(inputModel.models).map(async (model) => {
       const renderedOutput = await this.render(model, inputModel);
-      return OutputModel.toOutputModel({ result: renderedOutput.result, model, modelName, inputModel, dependencies: renderedOutput.dependencies});
+      return OutputModel.toOutputModel({ 
+        result: renderedOutput.result,
+        modelName: renderedOutput.renderedName, 
+        dependencies: renderedOutput.dependencies,
+        model, 
+        inputModel
+      });
     });
     return Promise.all(renders);
   }
diff --git a/src/generators/csharp/CSharpGenerator.ts b/src/generators/csharp/CSharpGenerator.ts
index 49c06bf5..a1770615 100644
--- a/src/generators/csharp/CSharpGenerator.ts
+++ b/src/generators/csharp/CSharpGenerator.ts
@@ -9,6 +9,7 @@ import { CSharpPreset, CSHARP_DEFAULT_PRESET } from './CSharpPreset';
 import { EnumRenderer } from './renderers/EnumRenderer';
 import { ClassRenderer } from './renderers/ClassRenderer';
 import { isReservedCSharpKeyword } from './Constants';
+import { Logger } from '../../index';
 
 export interface CSharpOptions extends CommonGeneratorOptions<CSharpPreset> {
   namingConvention?: CommonNamingConvention;
@@ -60,7 +61,7 @@ export class CSharpGenerator extends AbstractGenerator<CSharpOptions, CSharpRend
   ${outputModel.result}
 }`;
     
-    return RenderOutput.toRenderOutput({result: outputContent, dependencies: outputModel.dependencies});
+    return RenderOutput.toRenderOutput({result: outputContent, renderedName: outputModel.renderedName, dependencies: outputModel.dependencies});
   }
 
   render(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
@@ -75,20 +76,23 @@ export class CSharpGenerator extends AbstractGenerator<CSharpOptions, CSharpRend
     case ModelKind.ENUM: 
       return this.renderEnum(model, inputModel);
     }
-    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', dependencies: [] }));
+    Logger.warn(`C# generator, cannot generate this type of model, ${model.$id}`);
+    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', renderedName: '', dependencies: [] }));
   }
 
   async renderEnum(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('enum');
     const renderer = new EnumRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({ result, dependencies: renderer.dependencies });
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({ result, renderedName, dependencies: renderer.dependencies });
   }
 
   async renderClass(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('class');
     const renderer = new ClassRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({ result, dependencies: renderer.dependencies });
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({ result, renderedName, dependencies: renderer.dependencies });
   }
 }
diff --git a/src/generators/go/GoGenerator.ts b/src/generators/go/GoGenerator.ts
index 2b2518be..164978fa 100644
--- a/src/generators/go/GoGenerator.ts
+++ b/src/generators/go/GoGenerator.ts
@@ -9,6 +9,7 @@ import { GoPreset, GO_DEFAULT_PRESET } from './GoPreset';
 import { StructRenderer } from './renderers/StructRenderer';
 import { EnumRenderer } from './renderers/EnumRenderer';
 import { pascalCaseTransformMerge } from 'change-case';
+import { Logger } from '../../';
 
 /**
  * The Go naming convention type
@@ -26,9 +27,9 @@ export const GoNamingConventionImplementation: GoNamingConvention = {
     if (!name) {return '';}
     return FormatHelpers.toPascalCase(name, { transform: pascalCaseTransformMerge });
   },
-  field: (fieldName: string | undefined) => {
-    if (!fieldName) {return '';}
-    return FormatHelpers.toPascalCase(fieldName, { transform: pascalCaseTransformMerge });
+  field: (name: string | undefined) => {
+    if (!name) {return '';}
+    return FormatHelpers.toPascalCase(name, { transform: pascalCaseTransformMerge });
   }
 };
 
@@ -64,7 +65,8 @@ export class GoGenerator extends AbstractGenerator<GoOptions> {
     case ModelKind.ENUM: 
       return this.renderEnum(model, inputModel);
     }
-    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', dependencies: [] }));
+    Logger.warn(`Go generator, cannot generate this type of model, ${model.$id}`);
+    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', renderedName: '', dependencies: [] }));
   }
 
   renderCompleteModel(): Promise<RenderOutput> {
@@ -75,13 +77,15 @@ export class GoGenerator extends AbstractGenerator<GoOptions> {
     const presets = this.getPresets('enum');
     const renderer = new EnumRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({ result, dependencies: renderer.dependencies });
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({ result, renderedName, dependencies: renderer.dependencies });
   }
 
   async renderStruct(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('struct');
     const renderer = new StructRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({ result, dependencies: renderer.dependencies });
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({ result, renderedName, dependencies: renderer.dependencies });
   }
 }
diff --git a/src/generators/java/JavaFileGenerator.ts b/src/generators/java/JavaFileGenerator.ts
index 9f2340a6..e1bfb99c 100644
--- a/src/generators/java/JavaFileGenerator.ts
+++ b/src/generators/java/JavaFileGenerator.ts
@@ -3,7 +3,6 @@ import { CommonInputModel, OutputModel } from '../../models';
 import * as path from 'path';
 import { AbstractFileGenerator } from '../AbstractFileGenerator';
 import { FileHelpers } from '../../helpers';
-import { isReservedJavaKeyword } from './Constants';
 
 export class JavaFileGenerator extends JavaGenerator implements AbstractFileGenerator<JavaRenderCompleteModelOptions> {
   /**
@@ -17,8 +16,7 @@ export class JavaFileGenerator extends JavaGenerator implements AbstractFileGene
     let generatedModels = await this.generateCompleteModels(input, options);
     generatedModels = generatedModels.filter((outputModel) => { return outputModel.modelName !== undefined; });
     for (const outputModel of generatedModels) {
-      const modelOutputFileName = this.options.namingConvention?.type ? this.options.namingConvention.type(outputModel.modelName, {inputModel: outputModel.inputModel, model: outputModel.model, reservedKeywordCallback: isReservedJavaKeyword}) : outputModel.modelName;
-      const filePath = path.resolve(outputDirectory, `${modelOutputFileName}.java`);
+      const filePath = path.resolve(outputDirectory, `${outputModel.modelName}.java`);
       await FileHelpers.writerToFileSystem(outputModel.result, filePath);
     }
     return generatedModels;
diff --git a/src/generators/java/JavaGenerator.ts b/src/generators/java/JavaGenerator.ts
index 4ec7fc00..3ade5ad2 100644
--- a/src/generators/java/JavaGenerator.ts
+++ b/src/generators/java/JavaGenerator.ts
@@ -9,6 +9,7 @@ import { JavaPreset, JAVA_DEFAULT_PRESET } from './JavaPreset';
 import { ClassRenderer } from './renderers/ClassRenderer';
 import { EnumRenderer } from './renderers/EnumRenderer';
 import { isReservedJavaKeyword } from './Constants';
+import { Logger } from '../../';
 export interface JavaOptions extends CommonGeneratorOptions<JavaPreset> {
   collectionType?: 'List' | 'Array';
   namingConvention?: CommonNamingConvention;
@@ -44,7 +45,8 @@ export class JavaGenerator extends AbstractGenerator<JavaOptions, JavaRenderComp
     } else if (kind === ModelKind.ENUM) {
       return this.renderEnum(model, inputModel);
     }
-    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', dependencies: [] }));
+    Logger.warn(`Java generator, cannot generate this type of model, ${model.$id}`);
+    return Promise.resolve(RenderOutput.toRenderOutput({ result: '', renderedName: '', dependencies: [] }));
   }
 
   /**
@@ -70,20 +72,22 @@ export class JavaGenerator extends AbstractGenerator<JavaOptions, JavaRenderComp
 ${modelDependencies.join('\n')}
 ${outputModel.dependencies.join('\n')}
 ${outputModel.result}`; 
-    return RenderOutput.toRenderOutput({result: outputContent, dependencies: outputModel.dependencies});
+    return RenderOutput.toRenderOutput({result: outputContent, renderedName: outputModel.renderedName, dependencies: outputModel.dependencies});
   }
 
   async renderClass(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('class');
     const renderer = new ClassRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 
   async renderEnum(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('enum'); 
     const renderer = new EnumRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 }
diff --git a/src/generators/java/JavaRenderer.ts b/src/generators/java/JavaRenderer.ts
index b0a57b9d..22fdd800 100644
--- a/src/generators/java/JavaRenderer.ts
+++ b/src/generators/java/JavaRenderer.ts
@@ -23,7 +23,7 @@ export abstract class JavaRenderer extends AbstractRenderer<JavaOptions, JavaGen
   /**
    * Renders the name of a type based on provided generator option naming convention type function.
    * 
-   * This is used to render names of models (example TS class) and then later used if that class is referenced from other models.
+   * This is used to render names of models and then later used if it is referenced from other models.
    * 
    * @param name 
    * @param model 
diff --git a/src/generators/java/renderers/ClassRenderer.ts b/src/generators/java/renderers/ClassRenderer.ts
index 2aa8546f..03aa8565 100644
--- a/src/generators/java/renderers/ClassRenderer.ts
+++ b/src/generators/java/renderers/ClassRenderer.ts
@@ -34,6 +34,9 @@ ${this.indent(this.renderBlock(content, 2))}
     return this.runPreset('ctor');
   }
 
+  /**
+   * Render all the properties for the class.
+   */
   async renderProperties(): Promise<string> {
     const properties = this.model.properties || {};
     const content: string[] = [];
@@ -64,6 +67,9 @@ ${this.indent(this.renderBlock(content, 2))}
     return this.runPreset('property', { propertyName, property, type});
   }
 
+  /**
+   * Render all the accessors for the properties
+   */
   async renderAccessors(): Promise<string> {
     const properties = this.model.properties || {};
     const content: string[] = [];
diff --git a/src/generators/javascript/JavaScriptGenerator.ts b/src/generators/javascript/JavaScriptGenerator.ts
index 0efa029a..0801c1a8 100644
--- a/src/generators/javascript/JavaScriptGenerator.ts
+++ b/src/generators/javascript/JavaScriptGenerator.ts
@@ -6,8 +6,8 @@ import {
 import { CommonModel, CommonInputModel, RenderOutput } from '../../models';
 import { TypeHelpers, ModelKind, CommonNamingConvention, CommonNamingConventionImplementation } from '../../helpers';
 import { JavaScriptPreset, JS_DEFAULT_PRESET } from './JavaScriptPreset';
-
 import { ClassRenderer } from './renderers/ClassRenderer';
+import { Logger } from '../../';
 export interface JavaScriptOptions extends CommonGeneratorOptions<JavaScriptPreset> {
   namingConvention?: CommonNamingConvention
 }
@@ -37,13 +37,15 @@ export class JavaScriptGenerator extends AbstractGenerator<JavaScriptOptions> {
     if (kind === ModelKind.OBJECT) {
       return this.renderClass(model, inputModel);
     }
-    return Promise.resolve(RenderOutput.toRenderOutput({result: '', dependencies: []}));
+    Logger.warn(`JS generator, cannot generate model for '${model.$id}'`);
+    return Promise.resolve(RenderOutput.toRenderOutput({result: '', renderedName: '', dependencies: []}));
   }
 
   async renderClass(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('class'); 
     const renderer = new ClassRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 }
diff --git a/src/generators/typescript/TypeScriptGenerator.ts b/src/generators/typescript/TypeScriptGenerator.ts
index 4478f327..8d9bf8f8 100644
--- a/src/generators/typescript/TypeScriptGenerator.ts
+++ b/src/generators/typescript/TypeScriptGenerator.ts
@@ -58,7 +58,7 @@ export class TypeScriptGenerator extends AbstractGenerator<TypeScriptOptions,Typ
     const outputContent = `${modelDependencies.join('\n')}
 ${outputModel.dependencies.join('\n')}
 ${outputModel.result}`;
-    return RenderOutput.toRenderOutput({ result: outputContent, dependencies: outputModel.dependencies });
+    return RenderOutput.toRenderOutput({ result: outputContent, renderedName: outputModel.renderedName, dependencies: outputModel.dependencies });
   }
 
   render(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
@@ -81,28 +81,32 @@ ${outputModel.result}`;
     const presets = this.getPresets('class'); 
     const renderer = new ClassRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 
   async renderInterface(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('interface'); 
     const renderer = new InterfaceRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 
   async renderEnum(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('enum'); 
     const renderer = new EnumRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 
   async renderType(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
     const presets = this.getPresets('type'); 
     const renderer = new TypeRenderer(this.options, this, presets, model, inputModel);
     const result = await renderer.runSelfPreset();
-    return RenderOutput.toRenderOutput({result, dependencies: renderer.dependencies});
+    const renderedName = renderer.nameType(model.$id, model);
+    return RenderOutput.toRenderOutput({result, renderedName, dependencies: renderer.dependencies});
   }
 
   private renderModelType(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
diff --git a/src/models/RenderOutput.ts b/src/models/RenderOutput.ts
index a94690da..eff72ab0 100644
--- a/src/models/RenderOutput.ts
+++ b/src/models/RenderOutput.ts
@@ -1,5 +1,6 @@
 export interface ToRenderOutputArg {
   result: string;
+  renderedName: string;
   dependencies?: string[];
 }
 
@@ -9,10 +10,11 @@ export interface ToRenderOutputArg {
 export class RenderOutput {
   constructor(
     public readonly result: string,
+    public readonly renderedName: string,
     public readonly dependencies: string[] = []
   ) {}
 
   static toRenderOutput(args: ToRenderOutputArg): RenderOutput {
-    return new this(args.result, args.dependencies);
+    return new this(args.result, args.renderedName, args.dependencies);
   }
 }


Test patch:
diff --git a/test/blackbox/blackbox.spec.ts b/test/blackbox/blackbox.spec.ts
index 6d48e18b..39ba0044 100644
--- a/test/blackbox/blackbox.spec.ts
+++ b/test/blackbox/blackbox.spec.ts
@@ -18,7 +18,7 @@ function readFilesInFolder(folder: string) {
   const fullPath = path.resolve(__dirname, `./docs/${folder}`);
   return fs.readdirSync(fullPath).map(
     (file) => { 
-      return { file: `./docs/${folder}/${file}`, outputDirectory: `${folder}/${path.parse(file).name}`};
+      return { file: `./docs/${folder}/${file}`, outputDirectory: `./output/${folder}/${path.parse(file).name}`};
     }
   );
 }
@@ -81,13 +81,19 @@ console.log('This is gonna take some time, Stay Awhile and Listen');
 describe.each(filesToTest)('Should be able to generate with inputs', ({file, outputDirectory}) => {
   jest.setTimeout(1000000);
   const fileToGenerateFor = path.resolve(__dirname, file);
+  const outputDirectoryPath = path.resolve(__dirname, outputDirectory);
+  beforeAll(async () => {
+    if (fs.existsSync(outputDirectoryPath)) {
+      await fs.rmSync(outputDirectoryPath, {recursive: true});
+    }
+  });
   describe(file, () => {
     describe('should be able to generate and compile Java', () => {
       test('class', async () => {
         const generator = new JavaFileGenerator();
         const inputFileContent = await fs.promises.readFile(fileToGenerateFor);
         const input = JSON.parse(String(inputFileContent));
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/java/class`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './java/class');
         const dependencyPath = path.resolve(__dirname, './dependencies/java/*');
 
         const generatedModels = await generator.generateToFiles(input, renderOutputPath, {packageName: 'TestPackageName'});
@@ -102,7 +108,7 @@ describe.each(filesToTest)('Should be able to generate with inputs', ({file, out
         const generator = new CSharpGenerator();
         const generatedModels = await generateModels(fileToGenerateFor, generator);
         expect(generatedModels).not.toHaveLength(0);
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/csharp`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './csharp');
         await renderModelsToSeparateFiles(generatedModels, renderOutputPath, 'cs');
         const compileCommand = `csc /target:library /out:${path.resolve(renderOutputPath, './compiled.dll')} ${path.resolve(renderOutputPath, '*.cs')}`;
         await execCommand(compileCommand);
@@ -114,9 +120,9 @@ describe.each(filesToTest)('Should be able to generate with inputs', ({file, out
         const generator = new TypeScriptGenerator();
         const generatedModels = await generateModels(fileToGenerateFor, generator);
         expect(generatedModels).not.toHaveLength(0);
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/ts/class/output.ts`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './ts/class/output.ts');
         await renderModels(generatedModels, renderOutputPath);
-        const transpiledOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/ts/class/output.js`);
+        const transpiledOutputPath = path.resolve(outputDirectoryPath, './ts/class/output.js');
         const transpileAndRunCommand = `tsc --downlevelIteration -t es5 ${renderOutputPath} && node ${transpiledOutputPath}`;
         await execCommand(transpileAndRunCommand);
       });
@@ -125,9 +131,9 @@ describe.each(filesToTest)('Should be able to generate with inputs', ({file, out
         const generator = new TypeScriptGenerator({modelType: 'interface'});
         const generatedModels = await generateModels(fileToGenerateFor, generator);
         expect(generatedModels).not.toHaveLength(0);
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/ts/interface/output.ts`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './ts/interface/output.ts');
         await renderModels(generatedModels, renderOutputPath);
-        const transpiledOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/ts/interface/output.js`);
+        const transpiledOutputPath = path.resolve(outputDirectoryPath, './ts/interface/output.js');
         const transpileAndRunCommand = `tsc -t es5 ${renderOutputPath} && node ${transpiledOutputPath}`;
         await execCommand(transpileAndRunCommand);
       });
@@ -138,7 +144,7 @@ describe.each(filesToTest)('Should be able to generate with inputs', ({file, out
         const generator = new JavaScriptGenerator();
         const generatedModels = await generateModels(fileToGenerateFor, generator);
         expect(generatedModels).not.toHaveLength(0);
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/js/class/output.js`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './js/class/output.js');
         await renderModels(generatedModels, renderOutputPath);
         const transpileAndRunCommand = `node ${renderOutputPath}`;
         await execCommand(transpileAndRunCommand);
@@ -150,7 +156,7 @@ describe.each(filesToTest)('Should be able to generate with inputs', ({file, out
         const generator = new GoGenerator();
         const generatedModels = await generateModels(fileToGenerateFor, generator);
         expect(generatedModels).not.toHaveLength(0);
-        const renderOutputPath = path.resolve(__dirname, `./output/${outputDirectory}/go/struct/main.go`);
+        const renderOutputPath = path.resolve(outputDirectoryPath, './go/struct/main.go');
         await renderModels(generatedModels, renderOutputPath, ['package main\n', 'func main() {}']);
         const compileCommand = `go build -o ${renderOutputPath.replace('.go', '')} ${renderOutputPath}`;
         await execCommand(compileCommand);
diff --git a/test/generators/AbstractGenerator.spec.ts b/test/generators/AbstractGenerator.spec.ts
index 5dc05360..9aa97c3f 100644
--- a/test/generators/AbstractGenerator.spec.ts
+++ b/test/generators/AbstractGenerator.spec.ts
@@ -14,11 +14,11 @@ export class TestGenerator extends AbstractGenerator {
   }
 
   render(model: CommonModel, inputModel: CommonInputModel): Promise<RenderOutput> {
-    return Promise.resolve(RenderOutput.toRenderOutput({result: model.$id || 'rendered content'}));
+    return Promise.resolve(RenderOutput.toRenderOutput({result: model.$id || 'rendered content', renderedName: 'TestName'}));
   }
 
   renderCompleteModel(model: CommonModel, inputModel: CommonInputModel, options: any): Promise<RenderOutput> {
-    throw new Error('Method not implemented.');
+    return Promise.resolve(RenderOutput.toRenderOutput({result: 'rendered complete content', renderedName: 'TestName'}));
   }
 }
 describe('AbstractGenerator', () => {
@@ -27,11 +27,20 @@ describe('AbstractGenerator', () => {
     generator = new TestGenerator();
   });
 
-  test('should `generate` function return OutputModels', async () => {
+  test('generate() should return OutputModels', async () => {
     const doc: any = { $id: 'test' };
     const outputModels = await generator.generate(doc);
 
     expect(outputModels[0].result).toEqual('test');
+    expect(outputModels[0].modelName).toEqual('TestName');
+  });
+
+  test('generateCompleteModels() should return OutputModels', async () => {
+    const doc: any = { $id: 'test' };
+    const outputModels = await generator.generateCompleteModels(doc, {});
+
+    expect(outputModels[0].result).toEqual('rendered complete content');
+    expect(outputModels[0].modelName).toEqual('TestName');
   });
 
   test('generate() should process CommonInputModel instance', async () => {
@@ -41,6 +50,18 @@ describe('AbstractGenerator', () => {
     cim.models[model.$id] = model;
     const outputModels = await generator.generate(cim);
     expect(outputModels[0].result).toEqual('test');
+    expect(outputModels[0].modelName).toEqual('TestName');
+  });
+
+  test('generateCompleteModels() should process CommonInputModel instance', async () => {
+    const cim = new CommonInputModel();
+    const model = new CommonModel();
+    model.$id = 'test';
+    cim.models[model.$id] = model;
+    const outputModels = await generator.generateCompleteModels(cim, {});
+
+    expect(outputModels[0].result).toEqual('rendered complete content');
+    expect(outputModels[0].modelName).toEqual('TestName');
   });
 
   test('should `process` function return CommonInputModel', async () => {
@@ -64,6 +85,7 @@ describe('AbstractGenerator', () => {
     const renderedContent = await generator.render(commonInputModel.models[keys[0]], commonInputModel);
 
     expect(renderedContent.result).toEqual('SomeModel');
+    expect(renderedContent.renderedName).toEqual('TestName');
     expect(renderedContent.dependencies).toEqual([]);
   });
 
diff --git a/test/generators/AbstractRenderer.spec.ts b/test/generators/AbstractRenderer.spec.ts
index 2cf03f20..07478336 100644
--- a/test/generators/AbstractRenderer.spec.ts
+++ b/test/generators/AbstractRenderer.spec.ts
@@ -9,7 +9,7 @@ describe('AbstractRenderer', () => {
       super(testOptions, new TestGenerator(), presets, new CommonModel(), new CommonInputModel());
     }
     render(): Promise<RenderOutput> {
-      return Promise.resolve(RenderOutput.toRenderOutput({result: ''}));
+      return Promise.resolve(RenderOutput.toRenderOutput({result: '', renderedName: ''}));
     }
   }
 
diff --git a/test/generators/java/JavaGenerator.spec.ts b/test/generators/java/JavaGenerator.spec.ts
index f2dfa8c7..5c1e51e2 100644
--- a/test/generators/java/JavaGenerator.spec.ts
+++ b/test/generators/java/JavaGenerator.spec.ts
@@ -1,7 +1,5 @@
-import { CommonInputModel, CommonModel, FileGenerator, OutputModel } from '../../../src';
 import { JavaGenerator } from '../../../src/generators'; 
-import * as path from 'path';
-import * as fs from 'fs';
+
 describe('JavaGenerator', () => {
   let generator: JavaGenerator;
   beforeEach(() => {
diff --git a/test/models/RenderOutput.spec.ts b/test/models/RenderOutput.spec.ts
index 2f9450c3..cd12f9d9 100644
--- a/test/models/RenderOutput.spec.ts
+++ b/test/models/RenderOutput.spec.ts
@@ -4,18 +4,22 @@ describe('RenderOutput', () => {
   test('should return an RenderOutput', () => {
     const ioutput: ToRenderOutputArg = {
       result: 'result',
+      renderedName: 'renderedName',
       dependencies: ['test']
     };
     const output = RenderOutput.toRenderOutput(ioutput);
     expect(output.result).toEqual(ioutput.result);
+    expect(output.renderedName).toEqual(ioutput.renderedName);
     expect(output.dependencies).toEqual(ioutput.dependencies);
   });
   test('should default to values', () => {
     const ioutput: ToRenderOutputArg = {
-      result: 'result'
+      result: 'result',
+      renderedName: 'renderedName'
     };
     const output = RenderOutput.toRenderOutput(ioutput);
     expect(output.result).toEqual(ioutput.result);
+    expect(output.renderedName).toEqual(ioutput.renderedName);
     expect(output.dependencies).toEqual([]);
   });
 });