public void IndirectionsContextDefaultBehavior_can_apply_default_behavior_to_return_default_value_globally() { // Arrange IndirectionsContext. ExcludeGeneric(). Include(PList <int> .AddT()). Include(PArray.ExistsOfTTArrayPredicateOfT <int>()). DefaultBehavior = IndirectionBehaviors.DefaultValue; // Act var get_now = PDateTime.NowGet().Body; var add = PList <int> .AddT().Body; var exists = PArray.ExistsOfTTArrayPredicateOfT <int>().Body; // Assert Assert.AreEqual(default(DateTime), get_now()); Assert.DoesNotThrow(() => add(null, 10)); Assert.IsFalse(exists(null, null)); }
public void PProxyListDefaultBehavior_can_apply_default_behavior_to_return_default_value_against_one_instance() { // Arrange var proxy = new PProxyList <int>(); proxy. ExcludeGeneric(). IncludeAddT(). DefaultBehavior = IndirectionBehaviors.DefaultValue; LooseCrossDomainAccessor.GetOrRegister <GenericHolder <IndirectionAction <List <int>, int> > >().Source = proxy.AddT().Body; LooseCrossDomainAccessor.GetOrRegister <GenericHolder <List <int> > >().Source = (List <int>)proxy; // Act var addTarget = LooseCrossDomainAccessor.GetOrRegister <GenericHolder <IndirectionAction <List <int>, int> > >().Source; var target = LooseCrossDomainAccessor.GetOrRegister <GenericHolder <List <int> > >().Source; var addOther = PList <int> .AddT().Body; // Assert Assert.DoesNotThrow(() => addTarget(target, 0)); Assert.Throws <FallthroughException>(() => addTarget(new List <int>(), 0)); Assert.Throws <FallthroughException>(() => addOther(null, 0)); }