コード例 #1
0
ファイル: SortTemplate.cs プロジェクト: kokarolos/Training
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }