public void BailsOnWriteOnlyProperty()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Greenness";
            Assert.Throws <NotWritablePropertyException>(() => fac.AfterPropertiesSet());
        }
        public void BailsOnNonExistantProperty()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Blister";
            Assert.Throws <InvalidPropertyException>(() => fac.AfterPropertiesSet());
        }
        public void BailsOnNonExistantProperty()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Blister";
            fac.AfterPropertiesSet();
        }
        public void BailsWhenReadingIndexedPropertyWithNoArguments()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Item";
            Assert.Throws <FatalObjectException>(() => fac.AfterPropertiesSet());
        }
        public void BailsOnWriteOnlyProperty()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Greenness";
            fac.AfterPropertiesSet();
        }
        public void BailsWhenReadingIndexedPropertyWithNoArguments()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Item";
            fac.AfterPropertiesSet();
            fac.GetObject();
        }
        public void IndexedProperty()
        {
            PropertyObject expected             = new PropertyObject();
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Item";
            fac.Arguments      = new object[] { 2 };
            fac.AfterPropertiesSet();
            object actual = fac.GetObject();

            Assert.AreEqual(expected[2], actual);
        }
        public void InstanceProperty()
        {
            PropertyObject expected = new PropertyObject();

            expected.Name = "Haruki Murakami";
            PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();

            fac.TargetObject   = expected;
            fac.TargetProperty = "Name";
            fac.AfterPropertiesSet();
            object actual = fac.GetObject();

            Assert.AreEqual(expected.Name, actual);
        }
		public void BailsOnNonExistantProperty()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Blister";
			fac.AfterPropertiesSet();
		}
		public void BailsOnWriteOnlyProperty()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Greenness";
			fac.AfterPropertiesSet();
		}
		public void BailsWhenReadingIndexedPropertyWithNoArguments()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Item";
			fac.AfterPropertiesSet();
			fac.GetObject();
		}
		public void IndexedProperty()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Item";
			fac.Arguments = new object[] {2};
			fac.AfterPropertiesSet();
			object actual = fac.GetObject();
			Assert.AreEqual(expected[2], actual);
		}
		public void InstanceProperty()
		{
			PropertyObject expected = new PropertyObject();
			expected.Name = "Haruki Murakami";
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Name";
			fac.AfterPropertiesSet();
			object actual = fac.GetObject();
			Assert.AreEqual(expected.Name, actual);
		}
		public void BailsOnNonExistantProperty()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Blister";
            Assert.Throws<InvalidPropertyException>(() => fac.AfterPropertiesSet());
		}
		public void BailsOnWriteOnlyProperty()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Greenness";
            Assert.Throws<NotWritablePropertyException>(() => fac.AfterPropertiesSet());
		}
		public void BailsWhenReadingIndexedPropertyWithNoArguments()
		{
			PropertyObject expected = new PropertyObject();
			PropertyRetrievingFactoryObject fac = new PropertyRetrievingFactoryObject();
			fac.TargetObject = expected;
			fac.TargetProperty = "Item";
            Assert.Throws<FatalObjectException>(() => fac.AfterPropertiesSet());
		}