package Ġcom . iz et tle . w rench . db Ċ Ċ import Ġandroidx . room . testing . Migration TestHelper Ċ import Ġandroidx . sqlite . db . framework . Framework SQLite Open Helper Factory Ċ import Ġandroidx . test . platform . app . Instrumentation Registry Ċ import Ġcom . iz et tle . w rench . core . B olt Ċ import Ġcom . iz et tle . w rench . database . W rench Database Ċ import Ġcom . iz et tle . w rench . database . migrations . Migrations . M IG RATION _ 1 _ 2 Ċ import Ġcom . iz et tle . w rench . database . migrations . Migrations . M IG RATION _ 2 _ 3 Ċ import Ġcom . iz et tle . w rench . database . tables . Configuration Table Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġjava . io . IOException Ċ Ċ class ĠMigration Tests Ġ{ ĊĠĠĠ Ġ// ĠUnable Ġto Ġmigrate Ġto Ġunit Test Ġdue Ġto Ġhttps :// github . com / ro bo lectric / ro bo lectric / issues / 2 0 6 5 ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġvar Ġtest Helper Ġ= ĠMigration TestHelper ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInstrument ation Registry . get Instrumentation (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠW rench Database :: class . java . canonical Name !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFramework SQLite Open Helper Factory ()) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġtest 1 to 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe Ġdatabase Ġwith Ġversion Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Db Ġ= Ġtest Helper . create Database ( TEST _ DB _ NAME , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinsert Ġdata ĊĊĠĠĠĠĠĠĠ Ġoriginal Db . close () ĊĊĠĠĠĠĠĠĠ Ġtest Helper . run Migrations And Validate ( TEST _ DB _ NAME , Ġ 2 , Ġtrue , ĠM IG RATION _ 1 _ 2 ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġfun Ġtest 2 to 3 () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġthe Ġdatabase Ġwith Ġversion Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġoriginal Db Ġ= Ġtest Helper . create Database ( TEST _ DB _ NAME , Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Application Id Ġ= ĠDatabase Helper . insert W rench Application ( original Db , Ġ" Test Application ", Ġ" com . iz et tle . w rench . test application ") ĊĊĊĠĠĠĠĠĠĠ Ġ// Ġinsert Ġdata ĊĠĠĠĠĠĠĠ ĠDatabase Helper . insert W rench Configuration ( original Db , Ġtest Application Id , Ġ" Integer key ", ĠB olt . TYPE . INTEGER ) ĊĠĠĠĠĠĠĠ ĠDatabase Helper . insert W rench Configuration ( original Db , Ġtest Application Id , Ġ" String key ", ĠB olt . TYPE . STRING ) ĊĠĠĠĠĠĠĠ ĠDatabase Helper . insert W rench Configuration ( original Db , Ġtest Application Id , Ġ" Boolean key ", ĠB olt . TYPE . BOOLEAN ) ĊĠĠĠĠĠĠĠ ĠDatabase Helper . insert W rench Configuration ( original Db , Ġtest Application Id , Ġ" Enum key ", ĠB olt . TYPE . ENUM ) ĊĊĠĠĠĠĠĠĠ Ġoriginal Db . close () ĊĊĠĠĠĠĠĠĠ Ġval Ġmigrated Db Ġ= Ġtest Helper . run Migrations And Validate ( TEST _ DB _ NAME , Ġ 3 , Ġtrue , ĠM IG RATION _ 2 _ 3 ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġcursor Ġ= ĠDatabase Helper . get W rench Configuration ByKey ( migr ated Db , Ġ" Integer key ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( B olt . TYPE . INTEGER , Ġcursor . getString ( cursor . getColumnIndex ( Configuration Table . COL _ TYPE ))) ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĊĠĠĠĠĠĠĠ Ġcursor Ġ= ĠDatabase Helper . get W rench Configuration ByKey ( migr ated Db , Ġ" String key ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( B olt . TYPE . STRING , Ġcursor . getString ( cursor . getColumnIndex ( Configuration Table . COL _ TYPE ))) ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĊĠĠĠĠĠĠĠ Ġcursor Ġ= ĠDatabase Helper . get W rench Configuration ByKey ( migr ated Db , Ġ" Boolean key ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( B olt . TYPE . BOOLEAN , Ġcursor . getString ( cursor . getColumnIndex ( Configuration Table . COL _ TYPE ))) ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĊĠĠĠĠĠĠĠ Ġcursor Ġ= ĠDatabase Helper . get W rench Configuration ByKey ( migr ated Db , Ġ" Enum key ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( B olt . TYPE . ENUM , Ġcursor . getString ( cursor . getColumnIndex ( Configuration Table . COL _ TYPE ))) ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTEST _ DB _ NAME Ġ= Ġ" test _ db " ĊĠĠĠ Ġ} Ċ Ċ } Ċ