// ĠCopyright Ġ 2 0 1 7 - 2 0 2 0 ĠFit bit , ĠInc Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġcom . fit bit . gold eng ate . bindings . util Ċ Ċ import Ġcom . fit bit . gold eng ate . bindings . Base Test Ċ import Ġorg . junit . Assert . assertNotNull Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ import Ġjava . util . Arrays Ċ Ċ class ĠMemory DataSource Test Ġ: ĠBaseTest () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdata Ġ= Ġbyte ArrayOf ( 0 x 0 1 ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Create Source () Ġ{ ĊĠĠĠĠĠĠĠ ĠMemory DataSource ( data ). use Ġ{ Ġsource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( source . this Pointer Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcan Attach Data Sink () Ġ{ ĊĠĠĠĠĠĠĠ ĠMemory DataSource ( data ). use Ġ{ Ġsource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMemory Data Sink (). use Ġ{ Ġsink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . attach ( sink . this Pointer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdetach Ġthe Ġsource Ġfrom Ġthis Ġsink Ġbefore Ġit Ġgets Ġdestroyed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . attach ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Send Data From Source To Attached Sink () Ġ{ ĊĠĠĠĠĠĠĠ ĠMemory DataSource ( data ). use Ġ{ Ġsource Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMemory Data Sink (). use Ġ{ Ġsink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattach ĠData Sink Ġthat Ġwill Ġreceive Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . attach ( sink . this Pointer ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmethod Ġto Ġtest Ġ( start Ġsending Ġdata Ġfrom ĠDataSource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . start () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġverify Ġthat Ġsink Ġgets Ġthe Ġdata Ġsent Ġfrom Ġsource ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( Arrays . equals ( sink . get Buffer With Sleep (), Ġdata )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdetach Ġthe Ġsource Ġfrom Ġthis Ġsink Ġbefore Ġit Ġgets Ġdestroyed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource . attach ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ