Solved!
private void GetFilters_Initialize()
{
var myFilters = new Object();
_mockRepository.Setup(p => p.ChangeFilterAttribute(It.IsAny<IList<IFilterDescriptor>>(), It.IsAny<Dictionary<string, Dictionary<string, Dictionary<string, int>>>>()))
.Callback((IList<IFilterDescriptor> filters, Dictionary<string, Dictionary<string, Dictionary<string, int>>> dictionaryColumnValue) =>
{
foreach (var filter in filters)
if (filter is CompositeFilterDescriptor)
{
var compositeFilterDescriptor = filter as CompositeFilterDescriptor;
if (compositeFilterDescriptor != null)
{
myFilters = compositeFilterDescriptor.FilterDescriptors;
return ;
}
}
else
{
myFilters = filters;
return;
}
})
.Returns((IList<IFilterDescriptor> filters, Dictionary<string, Dictionary<string, Dictionary<string, int>>> dictionaryColumnValue) =>
{
filters = myFilters as IList<IFilterDescriptor>;
if (filters.Any())
{
foreach (var filter in filters)
{
var descriptor = filter as FilterDescriptor;
foreach (var item in dictionaryColumnValue)
{
if (descriptor != null && item.Key == descriptor.Member)
{
foreach (var memberValue in item.Value)
{
descriptor.Member = memberValue.Key.ToString();
foreach (var convertedValue in memberValue.Value)
{
if (descriptor.ConvertedValue.Equals(convertedValue.Key))
{
descriptor.Value = convertedValue.Value;
break;
}
}
}
}
}
}
}
return filters;
});
}