Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        public void TestThatAddCriteriaThrowsArgumentNullExceptionIfCriteriaIsNull()
        {
            var filter = new Filter();

            Assert.That(filter, Is.Not.Null);

            Assert.Throws <ArgumentNullException>(() => filter.AddCriteria(null));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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)));
        }