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); }
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); }