/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Spell Checking Inspection ") Ċ Ċ package Ġorg . jetbrains . kotlin . gradle . incremental Ċ Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertNot Equals Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . io . File Ċ Ċ abstract Ġclass ĠClass path Snapshot ter Test Ġ: ĠClass path Snapshot Test Common () Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġtest SourceFile : ĠChange able Test SourceFile ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Class Snapshot : ĠClass Snapshot ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Class Snapshot Ġ= Ġtest SourceFile . compile And Snapshot () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter 's Ġresult Ġagainst Ġexpected Ġsnapshot `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Snapshot Ġ= ĠFile ("${ test SourceFile . source File . as File (). path . substring Before Last ('.') }- expected - snapshot . json "). read Text () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Snapshot , Ġtest Class Snapshot . to Gson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter Ġextract s ĠABI Ġinfo Ġfrom Ġa Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠChange Ġpublic Ġmethod Ġsignature ĊĠĠĠĠĠĠĠ Ġval Ġupdated Snapshot Ġ= Ġtest SourceFile . change Public Method Signature (). compile And Snapshot () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġsnapshot Ġmust Ġchange ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( test Class Snapshot . to Gson (), Ġupdated Snapshot . to Gson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter Ġdoes Ġnot Ġextract Ġnon - ABI Ġinfo Ġfrom Ġa Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠChange Ġmethod Ġimplementation ĊĠĠĠĠĠĠĠ Ġval Ġupdated Snapshot Ġ= Ġtest SourceFile . change Method Implementation (). compile And Snapshot () ĊĊĠĠĠĠĠĠĠ Ġ// ĠThe Ġsnapshot Ġmust Ġnot Ġchange ĊĠĠĠĠĠĠĠ ĠassertEquals ( test Class Snapshot . to Gson (), Ġupdated Snapshot . to Gson ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKotlin Classes Classpath Snapshot ter Test Ġ: ĠClass path Snapshot ter Test () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtest SourceFile Ġ= ĠSimple Kotlin Class ( tmp Dir ) Ċ } Ċ Ċ class ĠJava Classes Classpath Snapshot ter Test Ġ: ĠClass path Snapshot ter Test () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġtest SourceFile Ġ= ĠSimple Java Class ( tmp Dir ) Ċ } Ċ Ċ class ĠJava Class With Nested Classes Classpath Snapshot ter Test Ġ: ĠClass path Snapshot Test Common () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġtest SourceFile Ġ= ĠJava Class With Nested Classes ( tmp Dir ) ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Class Snapshot : ĠClass Snapshot ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Class Snapshot Ġ= Ġtest SourceFile . compile And Snapshot Nested Class () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTest SourceFile . compile And Snapshot Nested Class (): ĠClass Snapshot Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcompile And Snapshot All ()[ 5 ]. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest SourceFile . nested Class To Test , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠRegular Java Class Snapshot ). serialized Java Class . class Id . asString (). replace ('.', Ġ'$ ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter 's Ġresult Ġagainst Ġexpected Ġsnapshot `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Snapshot Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ("${ testData Dir . path }/ src / original /${ test SourceFile . nested Class To Test }- expected - snapshot . json "). read Text () ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected Snapshot , Ġtest Class Snapshot . to Gson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter Ġextract s ĠABI Ġinfo Ġfrom Ġa Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdated Snapshot Ġ= Ġtest SourceFile . change Public Method Signature (). compile And Snapshot Nested Class () ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( test Class Snapshot . to Gson (), Ġupdated Snapshot . to Gson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test ĠClass Snapshot ter Ġdoes Ġnot Ġextract Ġnon - ABI Ġinfo Ġfrom Ġa Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdated Snapshot Ġ= Ġtest SourceFile . change Method Implementation (). compile And Snapshot Nested Class () ĊĠĠĠĠĠĠĠ ĠassertEquals ( test Class Snapshot . to Gson (), Ġupdated Snapshot . to Gson ()) ĊĠĠĠ Ġ} Ċ } Ċ