Skip to content

Instantly share code, notes, and snippets.

@elyphas
Created January 21, 2020 18:18
Show Gist options
  • Save elyphas/b6502399b33f10bb49c8fb8f3ceb27f6 to your computer and use it in GitHub Desktop.
Save elyphas/b6502399b33f10bb49c8fb8f3ceb27f6 to your computer and use it in GitHub Desktop.
case class Articulo ( id: String = "", descripcion: Option[String] = None, unidad: String = "", presentacion: Option[Int] = None,
unid_med_pres: Option[String] = None, partida: String = "", cabms: Option[String] = None, cb: Option[Boolean] = None,
iva: Option[Double] = None, baja: Option[Boolean] = None, retension_isr: Option[Double] = None ) extends Father
class FrmArticulo {
val articulo = Articulo()
val hdlArticulo = Handler.create[Articulo](articulo).unsafeRunSync()
hdlArticulo.onNext(articulo)
val hdlCveArticulo = hdlArticulo.lens[String](articulo)(_.id)((state, newState) => state.copy(id = newState))
val cancelableCveArticulo = hdlCveArticulo.connect()
val hdlDescripcion = hdlArticulo.lens[String](articulo)(_.descripcion.getOrElse(""))((state, newState) => state.copy(descripcion = Some(newState)))
val cancelableDescripcion = hdlDescripcion.connect()
}
"get the last clave" should "contain a string with a folio" taggedAs GetClaveTest2 in {
val frmArticulo = new CFrmArticulo()
import frmArticulo._
hdlArticulo.foreach{v =>
println(v)
}
hdlCveArticulo.onNext("005.020")
hdlDescripcion.onNext("probando otra vez")
}
//The results are:
Articulo(005.020,None,,None,None,,None,None,None,None,None)
Articulo(,Some(probando otra vez),,None,None,,None,None,None,None,None)
//It must be:
Articulo(005.020,Some(probando otra vez),,None,None,,None,None,None,None,None)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment