public async Task <string> ApplySortingAsync(FormsMVCModel model) { _sorterContext = SorterContextProvider(model.SortType); var output = await _sorterContext.SortAsync(model.Input); return(output); }
public FormsMVCView(FormsMVCModel model) { InitializeComponent(); Tb_Input.Text = model.Input; Cb_Sorting.SelectedIndex = (int)model.SortType; Lbl_Sorted_Value.Text = model.Output; }
public string ApplySorting(FormsMVCModel model) { _sorterContext = SorterContextProvider(model.SortType); var output = _sorterContext.Sort(model.Input); return(output); }
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); }
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); }
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); }
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); }
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); }
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); }
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)); }
private void CreateView(FormsMVCModel model) { View = new FormsMVCView(model); View.SortEvent += (s, e) => ViewManager.UpdateViewAsync(View, SortInputAsync, e.Parse()); }
private bool DeepEqual(FormsMVCModel expected, FormsMVCModel result) => expected.Input == result.Input && expected.SortType == result.SortType && expected.Output == result.Output;