/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . android . build . gradle . internal . testing . ut p . ice box Ċ Ċ import Ġcom . android . build . gradle . internal . Sdk Components Build Service Ċ import Ġcom . android . build . gradle . internal . dsl . Em ulator Snapshots Ċ import Ġcom . android . build . gradle . internal . fixtures . Fake Gradle Provider Ċ import Ġcom . android . build . gradle . internal . fixtures . Fake Provider Factory Ċ import Ġcom . android . build . gradle . internal . services . Dsl Services Ċ import Ġcom . android . build . gradle . internal . services . create Dsl Services Ċ import Ġcom . android . build . gradle . internal . testing . ut p . create Retention Config Ċ import Ġcom . android . build . gradle . options . Integer Option Ċ import Ġcom . android . build . gradle . options . Optional Boolean Option Ċ import Ġcom . android . build . gradle . options . Project Options Ċ import Ġcom . google . common . collect . Immutable Map Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mockito Ċ Ċ class ĠRet ention Config Test Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd sl Services : ĠD sl Services ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġemulator Snapshots : ĠEm ulator Snapshots ĊĊĠĠĠ Ġval Ġempty Project Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , ĠImmutableMap . of () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsdk Components Ġ= ĠMockito . mock ( Sdk Components Build Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġd sl Services Ġ= Ġcreate Dsl Services ( sdk Components Ġ= ĠFake Gradle Provider ( sdk Components )) ĊĠĠĠĠĠĠĠ Ġemulator Snapshots Ġ= ĠEm ulator Snapshots ( dsl Services ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdisable ByDefault () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( empty Project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenable By Dsl WithDefault Setup () Ġ{ ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( empty Project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . max Snapshots ). isEqualTo ( 2 ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . compress Snapshots ). isFalse () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . retain All ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Max Snapshot sBy Dsl () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax Snapshots Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . max Snapshots For Test Failures Ġ= Ġmax Snapshots ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( empty Project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . max Snapshots ). isEqualTo ( max Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . retain All ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Ret ain All By Dsl () Ġ{ ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . retain All () ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( empty Project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . retain All ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġset Compression Dsl () Ġ{ ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . compress Snapshots Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( empty Project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . compress Snapshots ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoverride Compression By CommandLine () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠImmutableMap . builder < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger Option . TEST _ FAILURE _ RET ENT ION . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOptional Boolean Option . ENABLE _ TEST _ FAILURE _ RET ENT ION _ COMPRESS _ SNAPSHOT . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , Ġproperties . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( emulator Snapshots . enable For Test Failures ). isFalse () ĊĠĠĠĠĠĠĠ ĠassertThat ( emulator Snapshots . compress Snapshots ). isFalse () ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . compress Snapshots ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . max Snapshots ). isEqualTo ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoverride Max Snapshot By CommandLine () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmax Snapshot Ġ= Ġ 3 ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠImmutableMap . builder < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger Option . TEST _ FAILURE _ RET ENT ION . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Snapshot ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , Ġproperties . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . get Ret ain All () ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . max Snapshots For Test Failures Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . max Snapshots ). isEqualTo ( max Snapshot ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . retain All ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoverride Enable By CommandLine () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠImmutableMap . builder < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger Option . TEST _ FAILURE _ RET ENT ION . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , Ġproperties . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertThat ( emulator Snapshots . enable For Test Failures ). isFalse () ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoverride Disable By CommandLine () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠImmutableMap . builder < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger Option . TEST _ FAILURE _ RET ENT ION . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , Ġproperties . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġoverride Ret ain All By CommandLine () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperties Ġ= ĠImmutableMap . builder < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġproperties . put ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInteger Option . TEST _ FAILURE _ RET ENT ION . propertyName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Options Ġ= ĠProject Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImmutableMap . of (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Provider Factory . factory , Ġproperties . build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġemulator Snapshots . enable For Test Failures Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠassertThat ( emulator Snapshots . get Ret ain All ()). isFalse () ĊĠĠĠĠĠĠĠ Ġval Ġretention Config Ġ= Ġcreate Retention Config ( project Options , Ġemulator Snapshots ) ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . enabled ). isTrue () ĊĠĠĠĠĠĠĠ ĠassertThat ( retention Config . retain All ). isTrue () ĊĠĠĠ Ġ} Ċ } Ċ