コード例 #1
0
ファイル: SortingService.cs プロジェクト: IanEscober/FormsMVC
        public async Task <string> ApplySortingAsync(FormsMVCModel model)
        {
            _sorterContext = SorterContextProvider(model.SortType);
            var output = await _sorterContext.SortAsync(model.Input);

            return(output);
        }
コード例 #2
0
ファイル: FormsMVCView.cs プロジェクト: IanEscober/FormsMVC
 public FormsMVCView(FormsMVCModel model)
 {
     InitializeComponent();
     Tb_Input.Text            = model.Input;
     Cb_Sorting.SelectedIndex = (int)model.SortType;
     Lbl_Sorted_Value.Text    = model.Output;
 }
コード例 #3
0
ファイル: SortingService.cs プロジェクト: IanEscober/FormsMVC
        public string ApplySorting(FormsMVCModel model)
        {
            _sorterContext = SorterContextProvider(model.SortType);
            var output = _sorterContext.Sort(model.Input);

            return(output);
        }
コード例 #4
0
        public void IsValid_WithValidInputAndIndex_Should_Return_True(string input, int index)
        {
            var value = new FormsMVCModel {
                Input = input, SortType = (SorterTypes)index, Output = null
            };

            var result = value.IsValid();

            Assert.IsTrue(result);
        }
コード例 #5
0
        public async Task ApplySortingAsync_WithInvalidSorter_Should_Throw(SorterTypes sortType)
        {
            var value  = "bacsdasdwea";
            var sorter = new SortingService();
            var model  = new FormsMVCModel {
                Input = value, SortType = sortType
            };

            var task = Task.Run(() => sorter.ApplySortingAsync(model));

            await Assert.ThrowsExceptionAsync <TypeLoadException>(() => task);
        }
コード例 #6
0
        public void ApplySorting_WithInvalidSorter_Should_Throw(SorterTypes sortType)
        {
            var value  = "bacsdasdwea";
            var sorter = new SortingService();
            var model  = new FormsMVCModel {
                Input = value, SortType = sortType
            };

            Action act = () => sorter.ApplySorting(model);

            Assert.ThrowsException <TypeLoadException>(act);
        }
コード例 #7
0
        public async Task ApplySortingAsync_Should_Sort_Input(SorterTypes sortType)
        {
            var value         = "bacsdasdwea";
            var expectedValue = "aaabcddessw";
            var sorter        = new SortingService();
            var model         = new FormsMVCModel {
                Input = value, SortType = sortType
            };

            var result = await sorter.ApplySortingAsync(model);

            Assert.AreEqual(expectedValue, result);
        }
コード例 #8
0
 public static bool IsValid(this FormsMVCModel model)
 {
     if (model != null)
     {
         if (!string.IsNullOrEmpty(model.Input))
         {
             return
                 (!Regex.IsMatch(model.Input, @"[^A-Za-z]") &&
                  Enum.IsDefined(typeof(SorterTypes), model.SortType));
         }
     }
     return(false);
 }
コード例 #9
0
        public async Task <FormsMVCView> SortInputAsync(FormsMVCModel model)
        {
            if (model.IsValid())
            {
                model.Output = await _sortingService.ApplySortingAsync(model);
            }
            else
            {
                model.Output = "Input should only contain [A-Z , a-z]";
            }

            CreateView(model);
            return(View);
        }
コード例 #10
0
ファイル: ParsingTests.cs プロジェクト: IanEscober/FormsMVC
        public void Parse_Should_Convert_Args_To_Model(string input, int index)
        {
            var value = new SortEventArgs {
                Input = input, SortTypeIndex = index
            };
            var expectedValue = new FormsMVCModel {
                Input = input, SortType = (SorterTypes)index, Output = null
            };

            var result = value.Parse();

            //For simplicity only
            Assert.IsTrue(DeepEqual(expectedValue, result));
        }
コード例 #11
0
 private void CreateView(FormsMVCModel model)
 {
     View            = new FormsMVCView(model);
     View.SortEvent += (s, e) =>
                       ViewManager.UpdateViewAsync(View, SortInputAsync, e.Parse());
 }
コード例 #12
0
ファイル: ParsingTests.cs プロジェクト: IanEscober/FormsMVC
 private bool DeepEqual(FormsMVCModel expected, FormsMVCModel result) =>
 expected.Input == result.Input &&
 expected.SortType == result.SortType &&
 expected.Output == result.Output;