public void ZonesMemberShouldCreateAZone()
        {
            Func<dynamic> factory = () => new Shape();

            dynamic foo = new ZoneHolding(factory);
            Assert.That(foo.Zones.Header, Is.InstanceOf<ZoneOnDemand>());
        }
        public void ZonesShouldBeUnique()
        {
            Func<dynamic> factory = () => new Shape();

            dynamic foo = new ZoneHolding(factory);
            var header = foo.Header;

            Assert.That(foo.Zones.Header, Is.EqualTo(header));
            Assert.That(foo.Zones["Header"], Is.EqualTo(header));
            Assert.That(foo.Header, Is.EqualTo(header));
        }
        public void NoneEmptyZonesShouldNotBeNull()
        {
            Func<dynamic> factory = () => new Shape();

            dynamic foo = new ZoneHolding(factory);

            Assert.That(foo.Header == null, Is.True);
            Assert.That(foo.Header != null, Is.False);

            foo.Header.Add("blah");

            Assert.That(foo.Header == null, Is.False);
            Assert.That(foo.Header != null, Is.True);

            Assert.That(foo.Header == Nil.Instance, Is.False);
            Assert.That(foo.Header != Nil.Instance, Is.True);
        }
        public void EmptyZonesShouldBeNull()
        {
            Func<dynamic> factory = () => new Shape();

            dynamic foo = new ZoneHolding(factory);

            Assert.That(foo.Header == 1, Is.False);
            Assert.That(foo.Header != 1, Is.True);

            dynamic header = foo.Header;

            Assert.That(header == null, Is.True);
            Assert.That(header != null, Is.False);

            Assert.That(header == Nil.Instance, Is.True);
            Assert.That(header != Nil.Instance, Is.False);
        }
        public void ZonesShouldReturn()
        {
            Func<dynamic> factory = () => new Shape();

            var foo = new ZoneHolding(factory);
            Assert.That(foo.Zones, Is.InstanceOf<Zones>());
        }