/* Ċ Ġ* ĠMinecraft ĠDev Ġfor ĠIntelliJ Ċ Ġ* Ċ Ġ* Ġhttps :// minecraft dev . org Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 Ġm inecraft - dev Ċ Ġ* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . de mon wav . mc dev . platform . mixin Ċ Ċ import Ġcom . de mon wav . mc dev . framework . Ed t Interceptor Ċ import Ġcom . de mon wav . mc dev . platform . mixin . inspection . Mixin Super Class Inspection Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ Ċ @ Extend With ( Ed t Interceptor :: class ) Ċ @ DisplayName (" Mixin ĠSuper ĠClass ĠIns pection ĠTests ") Ċ class ĠSuper Class Test Ġ: ĠBase Mixin Test () Ġ{ ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun Ġsetup Project () Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Project Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava (" test / Entity . java ", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠEntity Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava (" test / D emon W av . java ", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠD emon W av Ġextends ĠEntity Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava (" test / Mine cre ll . java ", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠM ine cre ll Ġextends ĠEntity Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test (@ Language (" JAVA ") Ġmixin Code : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Project Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava (" test / Super Class Mixin . java ", Ġmixin Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfixture . enable Ins pe ctions ( Mixin Super Class Inspection :: class . java ) ĊĠĠĠĠĠĠĠ Ġfixture . check Highlighting ( true , Ġfalse , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" No ĠM ixin ĠSuper class ĠTest ") ĊĠĠĠ Ġfun Ġno Mixin Super class Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . spongepowered . asm . mixin . Mixin ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Mixin ( Mine cre ll . class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSuper Class Mixin Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Good ĠM ixin ĠSuper class ĠTest ") ĊĠĠĠ Ġfun Ġgood Mixin Super class Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . spongepowered . asm . mixin . Mixin ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Mixin ( Mine cre ll . class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSuper Class Mixin Ġextends ĠEntity Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Mixin ĠClass ĠCannot ĠExtend ĠIt self ĠTest ") ĊĠĠĠ Ġfun Ġmixin Class Not Its Own Super class Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . spongepowered . asm . mixin . Mixin ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Mixin ( D emon W av . class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSuper Class Mixin Ġextends Ġ< error Ġdescr =" Cannot Ġextend Ġtarget Ġclass "> D emon W av </ error > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ DisplayName (" Mixin ĠSuper class ĠNot ĠFound ĠIn ĠH ierarchy ĠTest ") ĊĠĠĠ Ġfun Ġmixin Class Hierarchy NotFound Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Test (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġtest ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġorg . spongepowered . asm . mixin . Mixin ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Mixin ( D emon W av . class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġclass ĠSuper Class Mixin Ġextends Ġ< error Ġdescr =" Cannot Ġfind Ġ' Mine cre ll ' Ġin Ġthe Ġhierarchy Ġof Ġtarget Ġclass Ġ' D emon W av '"> Mine cre ll </ error > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} Ċ } Ċ