package Ġcom . android te tris Ċ Ċ import Ġcom . android te tris . game . event .* Ċ import Ġcom . android te tris . game .* Ċ import Ġorg . junit . Assert .* Ċ import Ġorg . junit . Test ĊĊ Ċ class ĠEvent Dispatcher UnitTest Ġ{ ĊĠĠĠ Ġvar Ġfunction Called Ġ= Ġfalse ĊĠĠĠ Ġval Ġdispatcher Ġ= ĠEvent Dispatcher () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Add Callback Dispatch Event () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġa Ġcallback Ġand Ġdispatch Ġits Ġevent ĊĠĠĠĠĠĠĠ Ġdispatcher . add Callback ( Event . Coordinates Changed , Ġ:: display Coordinates ) ĊĠĠĠĠĠĠĠ Ġdispatcher . dispatch ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . Coordinates Changed , ĠCoordinates ChangedEventArgs ( array Of ( Point ( 0 , Ġ 0 )), ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĠT et rom ino Code . I ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠAssert Ġthat Ġthe Ġfunction Ġwas Ġcalled ĊĠĠĠĠĠĠĠ ĠassertTrue ( function Called ) ĊĠĠĠĠĠĠĠ Ġfunction Called Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġdisplay Coordinates ( args : ĠCoordinates ChangedEventArgs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOur Ġcallback Ġfunction ĊĠĠĠĠĠĠĠ ĠassertTrue ( args . old [ 0 ]. x Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( args . old [ 0 ]. y Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( args . new [ 0 ]. x Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( args . new [ 0 ]. y Ġ== Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġfunction Called Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Delete Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġdispatcher . delete Callback ( Event . Coordinates Changed , Ġ:: display Coordinates ) ĊĠĠĠĠĠĠĠ Ġ// ĠDispatch Ġthe Ġevent . ĠThe Ġfunction Ġshould ĠNOT Ġbe Ġcalled , Ġbecause Ġit Ġwas Ġremoved . ĊĠĠĠĠĠĠĠ Ġdispatcher . dispatch ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . Coordinates Changed , ĠCoordinates ChangedEventArgs ( array Of ( Point ( 0 , Ġ 0 )), ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPoint ( 1 , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĠT et rom ino Code . I ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠAssert Ġthat Ġthe Ġfunction Ġwas ĠNOT Ġcalled ĊĠĠĠĠĠĠĠ ĠassertFalse ( function Called ) ĊĠĠĠ Ġ} Ċ }