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); }
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)); }