예제 #1
0
        public void Cuando_la_raiz_es_nula_y_hay_una_condicion_sale_por_no()
        {
            cliente = new Cliente
            {
                Nombre = "Daniel",
            };
            bool seEjecuto = false;
            var result = cliente.ToMaybe()
                .Select(c => c.Direccion)
                .If(d=>
                    {
                        seEjecuto = true;
                        return EsCodigoPaisEspaña(d);
                    })
                .SelectOrDefault(d => d.CodigoPostal, () => "None");

            Assert.AreEqual("None", result.Value);
            Assert.IsFalse(seEjecuto);
        }
예제 #2
0
        public void Cuando_la_raiz_no_es_nula_y_executa_una_accion()
        {
            cliente = new Cliente
            {
                Nombre = "Daniel",
                Direccion = new Direccion
                {
                    CodigoPostal = "08401",
                    CodigoPais = "PT"
                }
            };

            bool seEjecuto = false;

            cliente.ToMaybe()
                .Execute(c =>
                    {
                        seEjecuto = true;
                    });

            Assert.IsTrue(seEjecuto);
        }
예제 #3
0
        public void Cuando_la_raiz_no_es_nula_y_se_pide_un_valor_de_salida()
        {
            cliente = new Cliente
            {
                Nombre = "Daniel"
            };

            var result = cliente.ToMaybe()
                .Return(c => c.Nombre, () => "DefaultNombre");

            Assert.AreEqual(result, "Daniel");
        }
예제 #4
0
        public void Cuando_la_raiz_no_es_nula_y_se_pide_por_un_valor_existente_O_default()
        {
            cliente = new Cliente
            {
                Nombre = "Daniel"
            };

            var result = cliente.ToMaybe()
                .SelectOrDefault(c => c.Nombre,()=>DefaultNombre);

            Assert.IsTrue(result.HasValue);
            Assert.AreEqual(result.Value, "Daniel");
        }