package Ġcom . segment . analytics . kotlin . core . utilities Ċ Ċ import Ġcom . segment . analytics . kotlin . core . Base Event Ċ import Ġcom . segment . analytics . kotlin . core . Track Event Ċ import Ġcom . segment . analytics . kotlin . core . empty JsonObject Ċ import Ġkotlinx . serialization . json . build JsonObject Ċ import Ġkotlinx . serialization . json . put Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠEvent Manip ulation Functions Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enable Integration Ġenables Ġintegration Ġwhen Ġnot Ġexist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . enable Integration (" test ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean (" test ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enable Integration Ġenables Ġintegration Ġwhen Ġdisable `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ Ġput (" test ", Ġfalse ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . enable Integration (" test ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean (" test ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enable Integration Ġenables Ġintegration Ġwhen Ġnon - boolean `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġbuild JsonObject Ġ{ Ġput (" key ", Ġ" value ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ Ġput (" test ", ĠjsonObject ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . enable Integration (" test ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( jsonObject , Ġtrack Event . integrations [" test "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` disable Cloud Integr ations Ġwith Ġexcept Ġlist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġbuild JsonObject Ġ{ Ġput (" key ", Ġ" value ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . disable Cloud Integr ations ( except Keys Ġ= ĠlistOf (" keep 1 ", Ġ" keep 2 ", Ġ" keep 3 ", Ġ" keep 4 ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 5 , Ġtrack Event . integrations . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean ( Base Event . ALL _ INTEGR ATIONS _ KEY )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean (" keep 1 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean (" keep 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" string ", Ġtrack Event . integrations . getString (" keep 3 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( jsonObject , Ġtrack Event . integrations [" keep 4 "]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` disable Cloud Integr ations Ġwith Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġbuild JsonObject Ġ{ Ġput (" key ", Ġ" value ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . disable Cloud Integr ations () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġtrack Event . integrations . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean ( Base Event . ALL _ INTEGR ATIONS _ KEY )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enable Cloud Integr ations Ġwith Ġexcept Ġlist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġbuild JsonObject Ġ{ Ġput (" key ", Ġ" value ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" keep 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . enable Cloud Integr ations ( except Keys Ġ= ĠlistOf (" keep 1 ", Ġ" keep 2 ", Ġ" keep 3 ", Ġ" keep 4 ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 5 , Ġtrack Event . integrations . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean ( Base Event . ALL _ INTEGR ATIONS _ KEY )) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean (" keep 1 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean (" keep 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean (" keep 3 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtrack Event . integrations . getBoolean (" keep 4 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enable Cloud Integr ations Ġwith Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġbuild JsonObject Ġ{ Ġput (" key ", Ġ" value ") Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtrack Event Ġ= ĠTrack Event ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Ġ= Ġ" clicked ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties Ġ= Ġbuild JsonObject Ġ{ Ġput (" be haviour ", Ġ" good ") Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmessageId Ġ= Ġ" qw erty - 1 2 3 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġanonymous Id Ġ= Ġ" anon Id " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegr ations Ġ= Ġbuild JsonObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 1 ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 2 ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 3 ", Ġ" string ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" discard 4 ", ĠjsonObject ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġempty JsonObject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtrack Event . enable Cloud Integr ations () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġtrack Event . integrations . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtrack Event . integrations . getBoolean ( Base Event . ALL _ INTEGR ATIONS _ KEY )) ĊĠĠĠ Ġ} Ċ }