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]); }
/// <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); }
public void CTOR() { EqualFilter <int> filter = GetEqualFilter <int>(); Assert.IsNotNull(filter); Assert.AreEqual(0, filter.SelectedValues.Count); Assert.IsFalse(filter.IsActive); }
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)); }
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)); }
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)); }
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)); }
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)); }
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; }
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); }
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); }
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); }
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); }
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); }
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); }
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]); }
public void NotCompositeExpression() { var filter = new EqualFilter(new FakeExtendedProperties(), Enumerable.Empty <ICreateFilterExpressions>()); Assert.False(filter.CompositeExpression); }