Ejemplo n.º 1
0
        public void CastSafe()
        {
            var airplane = new Airplane();

            Assert.NotNull(airplane.CastSafe <IAirplane>());
            Assert.Null(airplane.CastSafe <Engine>());

            Assert.Null(airplane.CastSafe <IAirplane>().Engine);
            airplane.Engine = new Engine();
            Assert.NotNull(airplane.CastSafe <IAirplane>().Engine);

            Assert.True(true);
        }
Ejemplo n.º 2
0
        public void Guard()
        {
            // cast guard
            var jet = new Jet();

            Assert.Null(jet.CastSafe <Airplane>());

            // null guard
            var airplane = new Airplane();

            Assert.Null(airplane.With(a => a.Engine));

            // condition guard
            airplane.Engine = new Engine();
            Assert.Null(airplane.If(a => a.Engine.HasFuel));

            // all guards pass
            airplane.Engine.HasFuel = true;
            var result = string.Empty;

            airplane.CastSafe <Airplane>().With(a => a.Engine).If(e => e.HasFuel).Do(e => result = "success");
            Assert.Equal("success", result);

            Assert.True(true);
        }