Ejemplo n.º 1
0
        public void TestFilterIsMatch()
        {
            EqualFilter <int>    filter = GetEqualFilter <int>();
            CollectionViewSource cvs    = new();
            var source = Enum.GetValues <StateEnum>().Cast <int>().ToList();

            cvs.Source = source;
            ICollectionView view = cvs.View;

            Assert.IsTrue(view.CanFilter);
            using (IDisposable defer = view.DeferRefresh()) {
                view.Filter = el => {
                    BolapanControl.ItemsFilter.FilterEventArgs e = new(el);
                    filter.IsMatch(null, e);
                    return(e.Accepted);
                };
            }
            var filtered = FilterPresenterTest.GetCollection(view);

            Assert.AreEqual(source.Count, filtered.Count);
            List <int> selected   = new(new int[] { (int)StateEnum.State1, (int)StateEnum.State4 });
            List <int> unselected = new();

            filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected);
            view.Refresh();
            filtered = FilterPresenterTest.GetCollection(view);
            Assert.AreEqual(selected.Count, filtered.Count);
            Assert.AreEqual(selected[0], filtered[0]);
            Assert.AreEqual(selected[1], filtered[1]);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Generate new instance of Filter class, if it is possible for filterPresenter and key.
        /// </summary>
        /// <param name="filterPresenter">FilterPresenter, which can be attached Filter</param>
        /// <param name="key">Key for generated Filter. For PropertyFilter, key used as the name for binding property in filterPresenter.Parent collection.</param>
        /// <returns>Instance of Filter class or null.</returns>
        public override Model.Filter NewFilter(FilterPresenter filterPresenter, object key)
        {
            Debug.Assert(filterPresenter != null);
            Debug.Assert(key != null);
            EqualFilter <object> filter = new EqualFilter <object>(item => item, filterPresenter.CollectionView.SourceCollection);

            return(filter);
        }
Ejemplo n.º 3
0
        public void CTOR()
        {
            EqualFilter <int> filter = GetEqualFilter <int>();

            Assert.IsNotNull(filter);

            Assert.AreEqual(0, filter.SelectedValues.Count);
            Assert.IsFalse(filter.IsActive);
        }
Ejemplo n.º 4
0
        public void ValueCanBeUInt32()
        {
            var e = new SystemEvent();
            var extendedProperties = new FakeExtendedProperties {
                { "property", "MessageId" }, { "value", e.MessageId.ToString(CultureInfo.InvariantCulture) }
            };
            var filter = new EqualFilter(extendedProperties, Enumerable.Empty <ICreateFilterExpressions>());

            Assert.True(Filter.Compile(filter).Invoke(e));
        }
Ejemplo n.º 5
0
        public void ValueCanBeString()
        {
            var e = new SystemEvent {
                Message = "My Message"
            };
            var extendedProperties = new FakeExtendedProperties {
                { "property", "Message" }, { "value", "My Message" }
            };
            var filter = new EqualFilter(extendedProperties, Enumerable.Empty <ICreateFilterExpressions>());

            Assert.True(Filter.Compile(filter).Invoke(e));
        }
Ejemplo n.º 6
0
        public void ValueCanBeInt32()
        {
            var e = new SystemEvent {
                ProcessId = 123
            };
            var extendedProperties = new FakeExtendedProperties {
                { "property", "ProcessId" }, { "value", "123" }
            };
            var filter = new EqualFilter(extendedProperties, Enumerable.Empty <ICreateFilterExpressions>());

            Assert.True(Filter.Compile(filter).Invoke(e));
        }
Ejemplo n.º 7
0
        public void ValueCanEnum()
        {
            var e = new SystemEvent {
                Level = SystemEventLevel.Warning
            };
            var extendedProperties = new FakeExtendedProperties {
                { "property", "Level" }, { "value", "Warning" }
            };
            var filter = new EqualFilter(extendedProperties, Enumerable.Empty <ICreateFilterExpressions>());

            Assert.True(Filter.Compile(filter).Invoke(e));
        }
Ejemplo n.º 8
0
        public void ValueCanBeDateTime()
        {
            var now = DateTime.Now;
            var e   = new SystemEvent {
                Timestamp = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second)
            };
            var extendedProperties = new FakeExtendedProperties {
                { "property", "Timestamp" }, { "value", now.ToString("yyyy-MM-dd HH:mm:ss") }
            };
            var filter = new EqualFilter(extendedProperties, Enumerable.Empty <ICreateFilterExpressions>());

            Assert.True(Filter.Compile(filter).Invoke(e));
        }
Ejemplo n.º 9
0
        public CategoryFilterView()
        {
            InitializeComponent();
            // Define Filter that must be use.
            EqualFilterInitializer initializer = new EqualFilterInitializer();
            // Get FilterPresenter that connected to default collection view for Workspace.This.Products collection.
            FilterPresenter productsCollectionViewFilterPresenter = FilterPresenter.TryGet(Workspace.This.Products);
            // Get EqualFilter that use Category item property.
            EqualFilter filter = ((EqualFilter)(productsCollectionViewFilterPresenter.TryGetFilter("Category", initializer)));

            // Use instance of EqualFilter as Model.
            Model = filter;
        }
Ejemplo n.º 10
0
        public void TestAvailableValues()
        {
            EqualFilter <int> filter = GetEqualFilter <int>();
            var source = enumSource.ToList();

            filter.AvailableValues = source;
            CollectionViewSource cvs = new();

            cvs.Source = filter.AvailableValues;
            ICollectionView view        = cvs.View;
            var             currentView = FilterPresenterTest.GetCollection(view);

            Assert.AreEqual(source.Count, currentView.Count);
        }
Ejemplo n.º 11
0
        public void TestEqualFilter_String_NotEqualValue()
        {
            var instance = new EqualFilterTestClass
            {
                S = "string"
            };
            var list = new List <EqualFilterTestClass>();

            list.Add(instance);

            var filter = new EqualFilter <EqualFilterTestClass>("S", "abc");

            var where = filter.ToWhereExpression();
            var results = list.Where(where.Compile()).ToList();

            Assert.AreEqual(0, results.Count);
        }
Ejemplo n.º 12
0
        public void TestToWhereExpression_DifferentNumericTypes()
        {
            var instance = new EqualFilterTestClass
            {
                Int = 1
            };
            var list = new List <EqualFilterTestClass>();

            list.Add(instance);

            var filter = new EqualFilter <EqualFilterTestClass>("Int", 1L);

            var where = filter.ToWhereExpression();
            var results = list.Where(where.Compile()).ToList();

            Assert.AreEqual(1, results.Count);
        }
Ejemplo n.º 13
0
        public void TestEqualFilter_NullableDateTimeOffset_NotEqualValue()
        {
            var instance = new EqualFilterTestClass
            {
                NullableDTOffset = DateTimeOffset.Now
            };
            var list = new List <EqualFilterTestClass>();

            list.Add(instance);

            var filter = new EqualFilter <EqualFilterTestClass>("NullableDTOffset", instance.NullableDTOffset.Value.AddDays(1.0));

            var where = filter.ToWhereExpression();
            var results = list.Where(where.Compile()).ToList();

            Assert.AreEqual(0, results.Count);
        }
Ejemplo n.º 14
0
        public void TestEqualFilter_NullableDate_EqualValue()
        {
            var instance = new EqualFilterTestClass
            {
                NullableDate = DateTime.UtcNow
            };
            var list = new List <EqualFilterTestClass>();

            list.Add(instance);

            var filter = new EqualFilter <EqualFilterTestClass>("NullableDate", instance.NullableDate);

            var where = filter.ToWhereExpression();
            var results = list.Where(where.Compile()).ToList();

            Assert.AreEqual(1, results.Count);
        }
Ejemplo n.º 15
0
        public void TestEqualFilter_NullableInteger_NotEqualValue()
        {
            var instance = new EqualFilterTestClass
            {
                NullableInt = 1
            };
            var list = new List <EqualFilterTestClass>();

            list.Add(instance);

            var filter = new EqualFilter <EqualFilterTestClass>("NullableInt", 0);

            var where = filter.ToWhereExpression();
            var results = list.Where(where.Compile()).ToList();

            Assert.AreEqual(0, results.Count);
        }
Ejemplo n.º 16
0
        public void TestAttach()
        {
            EqualFilter <int> filter = GetEqualFilter <int>();
            var source          = enumSource.ToList();
            var filterPresenter = FilterPresenter.Get(source);

            Assert.IsNotNull(filterPresenter);
            Assert.IsFalse(filter.IsActive);
            filter.Attach(filterPresenter);
            var view     = filterPresenter.CollectionView;
            var filtered = FilterPresenterTest.GetCollection(view);

            Assert.AreEqual(source.Count, filtered.Count);
            List <int> selected   = new(new int[] { (int)StateEnum.State1, (int)StateEnum.State4 });
            List <int> unselected = new();

            filter.SelectedValuesChanged(addedItems: selected, removedItems: unselected);
            Assert.IsTrue(filter.IsActive);
            filtered = FilterPresenterTest.GetCollection(view);
            Assert.AreEqual(selected.Count, filtered.Count);
            Assert.AreEqual(selected[0], filtered[0]);
            Assert.AreEqual(selected[1], filtered[1]);
        }
Ejemplo n.º 17
0
        public void NotCompositeExpression()
        {
            var filter = new EqualFilter(new FakeExtendedProperties(), Enumerable.Empty <ICreateFilterExpressions>());

            Assert.False(filter.CompositeExpression);
        }