public void AddingItemWithParamShouldAddToList()
        {
            // Arrange
            var sortingInfo = new SortingInfo();
            var arguments   = new Dictionary <string, object> {
                { "sort", sortingInfo }
            };

            _actionExecutingContext = new ActionExecutingContext(_actionContext, new List <IFilterMetadata>(),
                                                                 arguments, null);

            // Act
            _sortingFilter.OnActionExecuting(_actionExecutingContext);

            // Assert
            Assert.Null(_actionExecutingContext.Result);
            Assert.Equal(2, sortingInfo.Size());
            Assert.Collection(sortingInfo.Iterator(),
                              element =>
            {
                Assert.Equal("prop1", element.GetOrderBy());
                Assert.True(element.IsAsc());
            },
                              element =>
            {
                Assert.Equal("prop2", element.GetOrderBy());
                Assert.False(element.IsAsc());
            }
                              );
        }
        public void AddingItemWithParamShouldAddToListAtIndex()
        {
            //  Arrange
            var sortingInfo = new SortingInfo();

            //  Actual
            sortingInfo.Add(new SortingElement("Param1", Sorting.Asc));
            sortingInfo.Add(new SortingElement("Param2", Sorting.Dsc));
            sortingInfo.InsertAtIndex(0, "Param3", Sorting.Asc);
            sortingInfo.InsertAtIndex(0, "Param4", Sorting.Dsc);
            var sortingItems = sortingInfo.Iterator();

            //  Assertions
            Assert.Equal(4, sortingInfo.Size());
            Assert.Equal("Param4", sortingItems[0].GetOrderBy());
            Assert.Equal("Param3", sortingItems[1].GetOrderBy());
        }