package Ġcom . utz co z . emulator . device . generator Ċ Ċ import Ġcom . android . dv lib . Device Schema Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Arguments Ċ import Ġorg . junit . jupiter . params . provider . Method Source Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . File Ċ import Ġjavax . xml . parsers . SAX Parser Factory Ċ Ċ class ĠTemplate Resources Test Ġ{ ĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . clear Property ( SAX Parser Factory :: class . java . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . clear Property ( SAX Parser Factory :: class . java . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Parameterized Test ĊĠĠĠ Ġ@ Method Source (" templates ") ĊĠĠĠ Ġfun Ġtest Template Resource Format ( template Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Path Ġ= Ġ"${ File . separator } templates ${ File . separator }$ template Name " ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠDevice :: class . java . getResource ( template Path ) ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( url . to URI ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( null , ĠSystem . getProperty ( SAX Parser Factory :: class . java . name )) ĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġuse Ġdom 4 j , Ġand Ġit Ġuses Ġpull - parser , Ġwhat Ġcontains ĠSAX Parser Factory Ġimplementation , ĊĠĠĠĠĠĠĠ Ġ// Ġthat Ġwill Ġbe Ġused Ġby Ġprogram Ġdefault . ĠBut Ġpull - parser Ġdoesn 't Ġsupport Ġset Schema , Ġwhich ĊĠĠĠĠĠĠĠ Ġ// Ġmethod Ġthe Ġdv lib Ġneeds , Ġso Ġwe Ġchange Ġthe Ġdefault ĠSAX Parser Factory Ġimplementation ĊĠĠĠĠĠĠĠ Ġ// Ġto ĠJDK Ġruntime Ġversion Ġfor Ġdv lib Ġto Ġfix Ġerror . ĊĠĠĠĠĠĠĠ ĠSystem . setProperty ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSAX Parser Factory :: class . java . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . sun . org . apache . xer ces . internal . jax p . SAX Parser Factory Impl " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠByteArrayInputStream ( file . read Bytes ()). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfis Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ ĠByteArrayOutputStream (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠDevice Schema . validate ( fis , Ġit , Ġfile . parent File ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġtemplates () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of (" autom otive - device . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of (" tablet - device . xml "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArguments . of (" tv - device . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }