public void Chain3()
 {
     var Temp = new DateTime(1999, 1, 1);
     Assert.Equal(Temp, Temp.Chain<DateTime>(x => x.AddSeconds(1)));
     Assert.Equal(default(DateTime?), ((DateTime?)null).Chain<DateTime?>(x => x.Value.AddSeconds(1)));
     Assert.Throws<ArgumentOutOfRangeException>(() => ((DateTime?)null).Chain<DateTime?>(x => x.Value.AddSeconds(1), DateTime.MaxValue));
 }
 public void Chain4()
 {
     var Temp = new DateTime(1999, 1, 1);
     Assert.Equal(Temp.AddSeconds(1), Temp.Chain(x => x.AddSeconds(1)));
     Assert.Equal(DateTime.MaxValue, ((DateTime?)null).Chain(x => x.Value.AddSeconds(1), DateTime.MaxValue));
 }
 public void Chain2()
 {
     var Temp = new DateTime(1999, 1, 1);
     Assert.Equal(Temp.AddSeconds(1), Temp.Chain(x => x.AddSeconds(1)));
 }
 public void Chain()
 {
     DateTime Temp = new DateTime(1999, 1, 1);
     Assert.Equal(Temp, Temp.Chain<DateTime>(x => x.AddSeconds(1)));
 }