public void SingleColumnValueFilter_Validates_OK(Comparator comparator, ComparisonOperator comparison, bool latest, bool filterIfMissing)
        {
            var value  = "test";
            var filter = new SingleColumnValueFilter <MockDomainObject>(_map);


            filter.ComparisonOperator(comparison);
            filter.Comparator(comparator);

            filter.Column(x => x.Name);
            filter.ColumnValue(value);
            filter.FilterIfColumnMissing(filterIfMissing);
            filter.LatestVersion(latest);

            var validation = filter.ToFilterBuild();

            var isSpecialCase = filter.ValidateOperationForComparator(comparator, comparison);

            if (!isSpecialCase)
            {
                Assert.Throws <FilterException>(() => validation.Validate());
            }
            else
            {
                validation.Validate();
            }
        }
        public void SingleColumnValueFilter_Column_Enumerable_Validation_Ok()
        {
            var filter = new SingleColumnValueFilter <MockDomainObject>(_map);

            filter.Column(x => x.RandomList, "bla");
            filter.ColumnValue("test");

            var validation = filter.ToFilterBuild();

            validation.Validate();
        }
        public void SingleColumnValueFilter_NoValue_Validation_Throws_FilterException()
        {
            var filter = new SingleColumnValueFilter <MockDomainObject>(_map);

            filter.Column(x => x.Name);


            var validation = filter.ToFilterBuild();

            Assert.Throws <FilterException>(() => validation.Validate());
        }
        public void SingleColumnValueFilter_Builds_OK([CombinatorialValues(1.0f, 2.0d, 3L, 4, "test")] object value, Comparator comparator, ComparisonOperator comparison, bool latest, bool filterIfMissing)
        {
            var expected = $"SingleColumnValueFilter ('{Maps.MockDomainObject.TestColumnFamily}','{Maps.MockDomainObject.NameColumn}',{comparison.GetComparisonOperatorString()}," +
                           $"'{comparator.GetComparatorString()}{value}',{filterIfMissing},{latest})";

            var filter = new SingleColumnValueFilter <MockDomainObject>(_map);

            filter.ComparisonOperator(comparison);
            filter.Comparator(comparator);

            filter.Column(x => x.Name);
            filter.ColumnValue(value);
            filter.FilterIfColumnMissing(filterIfMissing);
            filter.LatestVersion(latest);

            var validation = filter.ToFilterBuild();

            var build = validation.Build();

            Assert.Equal(expected, build);
        }
        public void SingleColumnValueFilter_NoCF_Validation_Throws_FilterException()
        {
            var map = new ClassMap()
            {
                Maps = new List <IMap>()
                {
                    new PropertyMap()
                    {
                        ColumnName = Maps.MockDomainObject.NameColumn,
                        Name       = nameof(MockDomainObject.Name),
                        Type       = typeof(MockDomainObject)
                    }
                }
            };

            var filter = new SingleColumnValueFilter <MockDomainObject>(map);

            filter.Column(x => x.Name);
            var validation = filter.ToFilterBuild();

            Assert.Throws <FilterException>(() => validation.Validate());
        }