public void ContextNarrowing()
        {
            Inventor context = new Inventor("Nikola Tesla", new DateTime(1856, 7, 9), "Serbian");
            
            ConditionValidator cv1 = new ConditionValidator("DOB.Year == 1856", null);
            ConditionValidator cv2 = new ConditionValidator("Year == 1856", null);
            
            StaticListableObjectFactory factory = new StaticListableObjectFactory();
            factory.AddObject("cv1", cv1);
            factory.AddObject("cv2", cv2);

            ValidatorReference v1 = new ValidatorReference();
            v1.ObjectFactory = factory;
            v1.Name = "cv1";

            IValidationErrors errors = new ValidationErrors();

            Assert.IsTrue(v1.Validate(context, null, errors));
            Assert.IsTrue(v1.Validate(context, errors));

            ValidatorReference v2 = new ValidatorReference();
            v2.ObjectFactory = factory;
            v2.Name = "cv2";
            v2.Context = Expression.Parse("DOB");

            Assert.IsTrue(v2.Validate(context, null, errors));
            Assert.IsTrue(v2.Validate(context, errors));

            ValidatorReference v3 = new ValidatorReference("false");
            v3.ObjectFactory = factory;
            v3.Name = "cv2";
            v3.Context = Expression.Parse("DOB");

            Assert.IsTrue(v3.Validate(null, errors));
        }
 public void CountObjectsIncludingAncestorsWithNonHierarchicalFactory()
 {
     StaticListableObjectFactory lof = new StaticListableObjectFactory();
     lof.AddObject("t1", new TestObject());
     lof.AddObject("t2", new TestObject());
     Assert.IsTrue(ObjectFactoryUtils.CountObjectsIncludingAncestors(lof) == 2);
 }
        public void FalseValidatorReferenceNotEvaluatedBecauseWhenExpressionReturnsFalse()
        {
            StaticListableObjectFactory factory = new StaticListableObjectFactory();
            factory.AddObject("validator", new FalseValidator());

            ValidatorReference v = new ValidatorReference("false");
            v.ObjectFactory = factory;
            v.Name = "validator";

            IValidationErrors errors = new ValidationErrors();
            Assert.IsTrue(v.Validate(null, null, errors));
            Assert.IsTrue(v.Validate(null, errors));
        }
        public void FalseValidatorReference()
        {
            StaticListableObjectFactory factory = new StaticListableObjectFactory();
            factory.AddObject("validator", new FalseValidator());

            ValidatorReference v = new ValidatorReference();
            v.ObjectFactory = factory;
            v.Name = "validator";

            IValidationErrors errors = new ValidationErrors();
            Assert.IsFalse(v.Validate(null, null, errors));
            Assert.IsFalse(v.Validate(null, errors));
        }
 public void ObjectsOfTypeIncludingAncestorsWithStaticFactory()
 {
     StaticListableObjectFactory lof = new StaticListableObjectFactory();
     TestObject t1 = new TestObject();
     TestObject t2 = new TestObject();
     DummyFactory t3 = new DummyFactory();
     DummyFactory t4 = new DummyFactory();
     t4.IsSingleton = false;
     lof.AddObject("t1", t1);
     lof.AddObject("t2", t2);
     lof.AddObject("t3", t3);
     t3.AfterPropertiesSet(); // StaticListableObjectFactory does support lifecycle calls.
     lof.AddObject("t4", t4);
     t4.AfterPropertiesSet(); // StaticListableObjectFactory does support lifecycle calls.
     IDictionary<string, object> objects = ObjectFactoryUtils.ObjectsOfTypeIncludingAncestors(lof, typeof(ITestObject), true, false);
     Assert.AreEqual(2, objects.Count);
     Assert.AreEqual(t1, objects["t1"]);
     Assert.AreEqual(t2, objects["t2"]);
     objects = ObjectFactoryUtils.ObjectsOfTypeIncludingAncestors(lof, typeof(ITestObject), false, true);
     Assert.AreEqual(3, objects.Count);
     Assert.AreEqual(t1, objects["t1"]);
     Assert.AreEqual(t2, objects["t2"]);
     Assert.AreEqual(t3.GetObject(), objects["t3"]);
     objects = ObjectFactoryUtils.ObjectsOfTypeIncludingAncestors(lof, typeof(ITestObject), true, true);
     Assert.AreEqual(4, objects.Count);
     Assert.AreEqual(t1, objects["t1"]);
     Assert.AreEqual(t2, objects["t2"]);
     Assert.AreEqual(t3.GetObject(), objects["t3"]);
     Assert.IsTrue(objects["t4"] is TestObject);
 }
 public void NoObjectsOfTypeIncludingAncestors()
 {
     StaticListableObjectFactory lof = new StaticListableObjectFactory();
     lof.AddObject("foo", new object());
     IDictionary<string, object> objects = ObjectFactoryUtils.ObjectsOfTypeIncludingAncestors(lof, typeof(ITestObject), true, false);
     Assert.IsTrue(objects.Count == 0);
 }
Esempio n. 7
0
        private void DoTestSchedulerFactoryObject(bool explicitJobDetail, bool prototypeJob)
        {
            TestObject tb = new TestObject("tb", 99);
            JobDetailObject jobDetail0 = new JobDetailObject();
            jobDetail0.JobType = typeof (IJob);
            jobDetail0.ObjectName = ("myJob0");
            IDictionary jobData = new Hashtable();
            jobData.Add("testObject", tb);
            jobDetail0.JobDataAsMap = (jobData);
            jobDetail0.AfterPropertiesSet();
            Assert.AreEqual(tb, jobDetail0.JobDataMap.Get("testObject"));

            CronTriggerObject trigger0 = new CronTriggerObject();
            trigger0.ObjectName = ("myTrigger0");
            trigger0.JobDetail = (jobDetail0);
            trigger0.CronExpressionString = ("0/1 * * * * ?");
            trigger0.AfterPropertiesSet();

            TestMethodInvokingTask task1 = new TestMethodInvokingTask();
            MethodInvokingJobDetailFactoryObject mijdfb = new MethodInvokingJobDetailFactoryObject();
            mijdfb.ObjectName = ("myJob1");
            if (prototypeJob)
            {
                StaticListableObjectFactory objectFactory = new StaticListableObjectFactory();
                objectFactory.AddObject("task", task1);
                mijdfb.TargetObjectName = ("task");
                mijdfb.ObjectFactory = objectFactory;
            }
            else
            {
                mijdfb.TargetObject = (task1);
            }
            mijdfb.TargetMethod = ("doSomething");
            mijdfb.AfterPropertiesSet();
            JobDetail jobDetail1 = (JobDetail) mijdfb.GetObject();

            SimpleTriggerObject trigger1 = new SimpleTriggerObject();
            trigger1.ObjectName = ("myTrigger1");
            trigger1.JobDetail = (jobDetail1);
            trigger1.StartDelay = TimeSpan.FromMilliseconds(0);
            trigger1.RepeatInterval = TimeSpan.FromMilliseconds(20);
            trigger1.AfterPropertiesSet();

            IScheduler scheduler = MockRepository.GenerateMock<IScheduler>();

            scheduler.Stub(x => x.Context).Return(new SchedulerContext());

            SchedulerFactoryObject schedulerFactoryObject = new TestSchedulerFactoryObject(scheduler);
            schedulerFactoryObject.JobFactory = (null);
            IDictionary schedulerContext = new Hashtable();
            schedulerContext.Add("otherTestObject", tb);
            schedulerFactoryObject.SchedulerContextAsMap = (schedulerContext);
            if (explicitJobDetail)
            {
                schedulerFactoryObject.JobDetails = (new JobDetail[] {jobDetail0});
            }
            schedulerFactoryObject.Triggers = (new Trigger[] {trigger0, trigger1});
            try
            {
                schedulerFactoryObject.AfterPropertiesSet();
                schedulerFactoryObject.Start();
            }
            finally
            {
                schedulerFactoryObject.Dispose();
            }

            scheduler.AssertWasCalled(x => x.ScheduleJob(trigger0));
            scheduler.AssertWasCalled(x => x.ScheduleJob(trigger1));

            scheduler.AssertWasCalled(x => x.AddJob(jobDetail0, true));
            scheduler.AssertWasCalled(x => x.AddJob(jobDetail1, true));

            scheduler.AssertWasCalled(x => x.Start());
            scheduler.AssertWasCalled(x => x.Shutdown(false));
        }