public IEnumerable <T> Sort(IEnumerable <T> array, SortingMethodEnum sortingMethod, ComparerEnum comparerEnum) { IComparer <T> comparer = ComparerFactory <T> .Create(comparerEnum); switch (sortingMethod) { case SortingMethodEnum.BubbleSort: _sortingMethod = new BubbleSort <T>(); break; case SortingMethodEnum.QuickSort: _sortingMethod = new QuickShort <T>(); break; } return(_sortingMethod.Sort(array, comparer)); }
public void Run_Given_NoParameter_Should_UseBubbleSortAsTheSortingMethod() { //arrange SortingMethodEnum sortingMethodEnum = default(SortingMethodEnum); _sortingFactory .Setup(x => x.GetSortingMethod(It.IsAny <SortingMethodEnum>())) .Callback <SortingMethodEnum>((x) => { sortingMethodEnum = x; }) .Returns(_sort.Object); //act _app.Run("blah.txt"); //assert Assert.AreEqual(SortingMethodEnum.Bubble, sortingMethodEnum); }
public ISort <T> GetSortingMethod(SortingMethodEnum method) { ISort <T> sortingMethod = null; switch (method) { case SortingMethodEnum.Bubble: sortingMethod = new BubbleSort <T>(); break; case SortingMethodEnum.Quick: sortingMethod = new QuickSort <T>(); break; } return(sortingMethod); }
public void Run_Given_MethodParameterIsSet_Should_UseMethodParametersSortingMethod() { //arrange _fakeConfiguration = new Configuration { method = "Quick" }; _configuration .Setup(x => x.Value) .Returns(_fakeConfiguration); SortingMethodEnum sortingMethodEnum = SortingMethodEnum.Bubble; _sortingFactory .Setup(x => x.GetSortingMethod(It.IsAny <SortingMethodEnum>())) .Callback <SortingMethodEnum>((x) => { sortingMethodEnum = x; }) .Returns(_sort.Object); //act _app.Run("blah.txt"); //assert Assert.AreEqual(SortingMethodEnum.Quick, sortingMethodEnum); }