public void TestThatAsStringReturnsStringRepresentationOfCriterias() { var fixture = new Fixture(); fixture.Customize <ICriteria>(e => e.FromFactory(() => { var criteriaMock = MockRepository.GenerateMock <ICriteria>(); criteriaMock.Expect(m => m.AsString()) .Return(fixture.CreateAnonymous <string>()) .Repeat.Any(); return(criteriaMock); })); var filter = new Filter(); Assert.That(filter, Is.Not.Null); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(0)); filter.AddCriteria(fixture.CreateAnonymous <ICriteria>()); filter.AddCriteria(fixture.CreateAnonymous <ICriteria>()); filter.AddCriteria(fixture.CreateAnonymous <ICriteria>()); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(3)); var asString = filter.AsString(); Assert.That(asString, Is.Not.Null); Assert.That(asString, Is.Not.Empty); Assert.That(asString, Is.EqualTo(string.Format("{0}\r\n{1}\r\n{2}", filter.Criterias.ElementAt(0).AsString(), filter.Criterias.ElementAt(1).AsString(), filter.Criterias.ElementAt(2).AsString()))); filter.Criterias.ElementAt(0).AssertWasCalled(m => m.AsString()); filter.Criterias.ElementAt(1).AssertWasCalled(m => m.AsString()); filter.Criterias.ElementAt(2).AssertWasCalled(m => m.AsString()); }
public void TestThatAddCriteriaThrowsArgumentNullExceptionIfCriteriaIsNull() { var filter = new Filter(); Assert.That(filter, Is.Not.Null); Assert.Throws <ArgumentNullException>(() => filter.AddCriteria(null)); }
public void TestThatExcludeReturnsTrueIfRecordDataObjectsDoesNotMatchesTheCriteria() { var fixture = new Fixture(); fixture.Customize <Type>(e => e.FromFactory(() => typeof(object))); fixture.Customize <IMap>(e => e.FromFactory(() => MockRepository.GenerateMock <IMap>())); fixture.Customize <IField>(e => e.FromFactory(() => { var fieldMock = MockRepository.GenerateMock <IField>(); fieldMock.Expect(m => m.NameSource) .Return(fixture.CreateAnonymous <string>()) .Repeat.Any(); fieldMock.Expect(m => m.DatatypeOfSource) .Return(typeof(string)) .Repeat.Any(); return(fieldMock); })); var filter = new Filter(); Assert.That(filter, Is.Not.Null); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(0)); var fields = fixture.CreateMany <IField>(5).ToList(); var fieldCriteriaMock = MockRepository.GenerateMock <IFieldCriteria>(); fieldCriteriaMock.Expect(m => m.Field) .Return(fields.ElementAt(1)) .Repeat.Any(); fieldCriteriaMock.Expect(m => m.Exclude(Arg <object> .Is.NotNull)) .Return(true) .Repeat.Any(); filter.AddCriteria(fieldCriteriaMock); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(1)); var dataObjects = new List <IDataObjectBase>(fields.Count); foreach (var fieldMock in fields) { var dataObjectMock = MockRepository.GenerateMock <IDataObjectBase>(); dataObjectMock.Expect(m => m.Field) .Return(fieldMock) .Repeat.Any(); dataObjectMock.Expect(m => m.GetSourceValue <string>()) .Return(fixture.CreateAnonymous <string>()) .Repeat.Any(); dataObjects.Add(dataObjectMock); } Assert.That(filter.Exclude(dataObjects), Is.True); fieldCriteriaMock.AssertWasCalled(m => m.Field); fieldCriteriaMock.AssertWasCalled(m => m.Exclude(Arg <object> .Is.NotNull)); }
/// <summary> /// Generates a filter for the table using the criteria configurations. /// </summary> /// <param name="table">Table on which to generate the filter.</param> /// <param name="criteriaConfigurations">Configuration for the criterias.</param> /// <returns>Filter for the table.</returns> protected virtual IFilter GenerateFilter(ITable table, IEnumerable <Tuple <Type, string, object> > criteriaConfigurations) { if (table == null) { throw new ArgumentNullException("table"); } if (criteriaConfigurations == null) { throw new ArgumentNullException("criteriaConfigurations"); } var filter = new Filter(); foreach (var criteriaConfiguration in criteriaConfigurations) { var criteriaField = table.Fields.SingleOrDefault(m => string.Compare(m.NameSource, criteriaConfiguration.Item2, StringComparison.OrdinalIgnoreCase) == 0); if (criteriaField == null) { throw new DeliveryEngineSystemException(Resource.GetExceptionMessage(ExceptionMessage.FieldNotFound, criteriaConfiguration.Item2)); } if (criteriaConfiguration.Item1 == typeof(EqualCriteria <>)) { filter.AddCriteria(GenerateEqualCriteria(criteriaConfiguration.Item1, criteriaField, criteriaConfiguration.Item3)); continue; } if (criteriaConfiguration.Item1 == typeof(PoolCriteria <>)) { var poolValues = (string[])criteriaConfiguration.Item3; filter.AddCriteria(GeneratePoolCriteria(criteriaConfiguration.Item1, criteriaField, poolValues)); continue; } if (criteriaConfiguration.Item1 == typeof(IntervalCriteria <>)) { var values = (Tuple <string, string>)criteriaConfiguration.Item3; filter.AddCriteria(GenerateIntervalCriteria(criteriaConfiguration.Item1, criteriaField, values.Item1, values.Item2)); continue; } throw new DeliveryEngineSystemException(Resource.GetExceptionMessage(ExceptionMessage.DataTypeNotSupported, criteriaConfiguration.Item1.Name)); } return(filter); }
public void TestThatAddCriteriaAddsCriteriaToFilter() { var fixture = new Fixture(); fixture.Customize <ICriteria>(e => e.FromFactory(() => MockRepository.GenerateMock <ICriteria>())); var filter = new Filter(); Assert.That(filter, Is.Not.Null); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(0)); filter.AddCriteria(fixture.CreateAnonymous <ICriteria>()); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(1)); }
public void TestThatExcludeReturnsFalseIfFieldDoesNotMatchesTheCriteria() { var fixture = new Fixture(); fixture.Customize <Type>(e => e.FromFactory(() => typeof(object))); fixture.Customize <IMap>(e => e.FromFactory(() => MockRepository.GenerateMock <IMap>())); fixture.Customize <IField>(e => e.FromFactory(() => { var fieldMock = MockRepository.GenerateMock <IField>(); fieldMock.Expect(m => m.NameSource) .Return(fixture.CreateAnonymous <string>()) .Repeat.Any(); return(fieldMock); })); var filter = new Filter(); Assert.That(filter, Is.Not.Null); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(0)); var excludeFieldCriteriaMock = MockRepository.GenerateMock <IExcludeFieldCriteria>(); excludeFieldCriteriaMock.Expect(m => m.Field) .Return(fixture.CreateAnonymous <IField>()) .Repeat.Any(); excludeFieldCriteriaMock.Expect(m => m.Exclude(Arg <IField> .Is.NotNull)) .Return(true) .Repeat.Any(); filter.AddCriteria(excludeFieldCriteriaMock); Assert.That(filter.Criterias, Is.Not.Null); Assert.That(filter.Criterias.Count, Is.EqualTo(1)); Assert.That(filter.Exclude(excludeFieldCriteriaMock.Field), Is.True); excludeFieldCriteriaMock.AssertWasCalled(m => m.Field); excludeFieldCriteriaMock.AssertWasCalled(m => m.Exclude(Arg <IField> .Is.Equal(excludeFieldCriteriaMock.Field))); }