Esempio n. 1
0
		public void MergeTwoNullExceptionPreventer ()
		{
			var n1 = new NullExceptionPreventer ();
			var n2 = new NullExceptionPreventer ();
			dynamic merged = Merger.Merge (n1, n2);
			Assert.IsInstanceOfType (typeof(ConfigObject), merged);
		}
Esempio n. 2
0
        public void MergeTwoNullExceptionPreventer()
        {
            var     n1     = new NullExceptionPreventer();
            var     n2     = new NullExceptionPreventer();
            dynamic merged = Merger.Merge(n1, n2);

            Assert.IsInstanceOfType(typeof(ConfigObject), merged);
        }
Esempio n. 3
0
        /// <summary>
        /// If one of the objects is a NullExceptionPreventer, the other object is returned unchanged but
        /// as a ConfigObject
        /// </summary>
        public void MergeNullExceptionPreventer()
        {
            var     n = new NullExceptionPreventer();
            var     c = Config.ApplyJson(@"{ ""Sample"": ""Foobar"" }", new ConfigObject());
            dynamic merged;

            // merge left
            merged = Merger.Merge(c, n);
            Assert.IsInstanceOfType(typeof(ConfigObject), merged);
            Assert.That(merged.Sample == "Foobar");

            // merge right
            merged = Merger.Merge(n, c);
            Assert.IsInstanceOfType(typeof(ConfigObject), merged);
            Assert.That(merged.Sample == "Foobar");
        }
Esempio n. 4
0
		/// <summary>
		/// If one of the objects is a NullExceptionPreventer, the other object is returned unchanged but 
		/// as a ConfigObject
		/// </summary>
		public void MergeNullExceptionPreventer ()
		{
			var n = new NullExceptionPreventer ();
			var c = Config.ApplyJson (@"{ ""Sample"": ""Foobar"" }", new ConfigObject ());
			dynamic merged;

			// merge left
			merged = Merger.Merge (c, n);
			Assert.IsInstanceOfType (typeof(ConfigObject), merged);
			Assert.That (merged.Sample == "Foobar");

			// merge right
			merged = Merger.Merge (n, c);
			Assert.IsInstanceOfType (typeof(ConfigObject), merged);
			Assert.That (merged.Sample == "Foobar");
		}
Esempio n. 5
0
 // all member access to a NullExceptionPreventer will return a new NullExceptionPreventer
 // this allows for infinite nesting levels: var s = Obj1.foo.bar.bla.blubb; is perfectly valid
 public override bool TryGetMember(GetMemberBinder binder, out object result)
 {
     result = new NullExceptionPreventer();
     return(true);
 }