/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 2 Ġ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 (" FunctionName ") Ċ Ċ package Ġorg . jetbrains . kotlin . gradle . k pm . idea Ċ Ċ import Ġorg . gradle . kotlin . dsl . create Ċ import Ġorg . jetbrains . kotlin . gradle . k pm . Abstract K pm Extension Test Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Kotlin I os X 6 4 Variant Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Kotlin Linux X 6 4 Variant Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Kotlin Mac os X 6 4 Variant Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . jvm Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Object InputStream Ċ import Ġjava . io . Object OutputStream Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . fail Ċ Ċ class ĠIde a Kotlin Project Model Serializable Test Ġ: ĠAbstract K pm Extension Test () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġ- Ġserialize Ġand Ġdeserialize Ġ- Ġempty Ġproject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . evaluate () ĊĠĠĠĠĠĠĠ Ġassert Serialize And Deserialize Equals ( kotlin . to Ide a Kotlin Project Model ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` test Ġ- Ġserialize Ġand Ġdeserialize Ġ- Ġproject Ġwith Ġvariants Ġand Ġfragments `() Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin . main And Test Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnative Ġ= Ġfragments . create (" native ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapple Ġ= Ġfragments . create (" apple ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġios Ġ= Ġfragments . create < Kotlin I os X 6 4 Variant >(" ios ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmac os Ġ= Ġfragments . create < Kotlin Mac os X 6 4 Variant >(" macos ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlinux Ġ= Ġfragments . create < Kotlin Linux X 6 4 Variant >(" linux ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj vm Ġ= Ġj vm ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapple . ref ines ( native ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġios . ref ines ( apple ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmac os . ref ines ( apple ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux . ref ines ( native ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm . ref ines ( common ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . evaluate () ĊĠĠĠĠĠĠĠ Ġassert Serialize And Deserialize Equals ( kotlin . to Ide a Kotlin Project Model ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġassert Serialize And Deserialize Equals ( model : ĠIde a Kotlin Project Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbyte Stream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ ĠObject OutputStream ( byte Stream ). use Ġ{ Ġstream Ġ-> Ġstream . write Object ( model ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġserialized Model Ġ= Ġbyte Stream . toByteArray () ĊĊĠĠĠĠĠĠĠ Ġval Ġdeserialized Model Ġ= ĠObject InputStream ( ByteArray InputStream ( serialized Model )). use Ġ{ Ġstream Ġ-> Ġstream . read Object () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( de serialized Model Ġ! is ĠIde a Kotlin Project Model Impl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" Expected Ġ' de serialized Model ' Ġto Ġimplement Ġ${ Ide a Kotlin Project Model Impl :: class . java }. ĠFound Ġ$ de serialized Model ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . toString (), Ġdeserialized Model . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Expected Ġdeserialized Model Ġstring Ġrepresentation Ġto Ġmatch Ġsource Ġmodel " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ