public void ExecuteRules_Duplicate_HasRuleViolations() { var payorCoverageTypeMock = new Mock <PayorCoverageCacheType>(); payorCoverageTypeMock.SetupGet(pct => pct.WellKnownName).Returns("Test"); var payorCoverageCache = new PayorCoverageCache( new Mock <Patient>().Object, new Mock <PayorCache>().Object, new DateRange(DateTime.Now, null), "12345", new PayorSubscriberCache( new Address( "Test", null, "City", new Mock <CountyArea>().Object, new Mock <StateProvince>().Object, new Mock <Country>().Object, new PostalCode("12345")), null, new Mock <AdministrativeGender>().Object, new PersonName(string.Empty, "Fred", null, "Savage", null), new Mock <PayorSubscriberRelationshipCacheType>().Object), payorCoverageTypeMock.Object); var repositoryMock = new Mock <IPayorCoverageCacheRepository>(); repositoryMock.Setup( rep => rep.AnyPayorCoverageTypeInEffectiveDateRange(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <PayorCoverageCacheType>(), It.IsAny <DateRange>())).Returns( true); var ruleCollection = new PayorCoverageCacheRuleCollection(repositoryMock.Object); var ruleEngine = new RuleEngine <PayorCoverageCache>(ruleCollection); var ruleContext = new RuleEngineContext <PayorCoverageCache>(payorCoverageCache); ruleContext.WorkingMemory.AddContextObject(payorCoverageCache.PayorCoverageCacheType); ruleContext.WorkingMemory.AddContextObject(payorCoverageCache.EffectiveDateRange); var results = ruleEngine.ExecuteRules(ruleContext); Assert.IsTrue(results.HasRuleViolation); }
public void ExecuteRules_Valid_NoRuleViolations() { var repositoryMock = new Mock<IPayorCoverageCacheRepository> (); repositoryMock.Setup ( rep => rep.AnyPayorCoverageTypeInEffectiveDateRange(It.IsAny<long>(), It.IsAny<long>(), It.IsAny<PayorCoverageCacheType>(), It.IsAny<DateRange>())).Returns( false ); var ruleCollection = new PayorCoverageCacheRuleCollection ( repositoryMock.Object ); var ruleEngine = new RuleEngine<PayorCoverageCache> ( ruleCollection ); var payorCoverageTypeMock = new Mock<PayorCoverageCacheType> (); payorCoverageTypeMock.SetupGet ( pct => pct.WellKnownName ).Returns ( "Test" ); var payorCoverageCache = new PayorCoverageCache ( new Mock<Patient> ().Object, new Mock<PayorCache> ().Object, new DateRange ( DateTime.Now, null ), "12345", new PayorSubscriberCache ( new Address ( "Test", null, "City", new Mock<CountyArea> ().Object, new Mock<StateProvince> ().Object, new Mock<Country> ().Object, new PostalCode ( "12345" ) ), null, new Mock<AdministrativeGender> ().Object, new PersonName ( string.Empty, "Fred", null, "Savage", null ), new Mock<PayorSubscriberRelationshipCacheType> ().Object ), payorCoverageTypeMock.Object ); var ruleContext = new RuleEngineContext<PayorCoverageCache> ( payorCoverageCache ); ruleContext.WorkingMemory.AddContextObject ( payorCoverageCache.PayorCoverageCacheType ); ruleContext.WorkingMemory.AddContextObject ( payorCoverageCache.EffectiveDateRange ); var results = ruleEngine.ExecuteRules ( ruleContext ); Assert.IsFalse ( results.HasRuleViolation ); }