public void FilteringByNameReturnsSubsetOfResults() { List<Customer> customers = TestHelpers.GetSampleCustomersList(); MainViewModel viewModel = new MainViewModel(); // CustomersBuckup is private field to keep data unchanged // and should not be exposed. // Use reflection for the purpose of the test. System.Reflection.FieldInfo fieldInfo = typeof(MainViewModel).GetField("customersBuckup", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); Assert.IsNotNull(fieldInfo); fieldInfo.SetValue(viewModel, customers); viewModel.Customers = customers; viewModel.Filter = "a"; List<Customer> customersWithAInName = customers.Where(c => c.Name.Contains("a")).ToList(); CollectionAssert.AreEquivalent(customersWithAInName, viewModel.Customers.ToList()); CollectionAssert.IsSubsetOf(viewModel.Customers.ToList(), customers); // sanity check if the result is not always true CollectionAssert.IsNotSubsetOf(customers, viewModel.Customers.ToList()); // empty fielter should bring back all the customers viewModel.Filter = string.Empty; CollectionAssert.AreEquivalent(viewModel.Customers.ToList(), customers); }
public void IfUserListEmptyShowStatsCommandDoesNotExecute() { Customer customer = new Customer(); MainViewModel viewModel = new MainViewModel(); Assert.IsFalse(viewModel.ShowStatsCommand.CanExecute(null)); viewModel.Customers = new List<Customer> { customer }; Assert.IsTrue(viewModel.ShowStatsCommand.CanExecute(null)); }
public void IfNoUserIsSelectedUpdateCommandDoesNotExecute() { Customer customer = new Customer(); MainViewModel viewModel = new MainViewModel(); Assert.IsFalse(viewModel.UpdateCustomerCommand.CanExecute(null)); viewModel.SelectedCustomer = customer; Assert.IsTrue(viewModel.UpdateCustomerCommand.CanExecute(null)); }
/// <summary> /// Creates an instance of the DisplayModificationHistoryCommand. /// </summary> /// <param name="mainViewModel">A view model on which command's method will be invoked.</param> public DisplayModificationHistoryCommand(MainViewModel mainViewModel) { this.mainViewModel = mainViewModel; }
/// <summary> /// Creates an instance of the UpdateCustomerCommand. /// </summary> /// <param name="mainViewModel">A view model on which command's method will be invoked.</param> public UpdateCustomerCommand(MainViewModel mainViewModel) { this.mainViewModel = mainViewModel; }
public void SettingCustomerToMainViewModelTriggersPropertyChanged() { Customer customer = new Customer(); MainViewModel viewModel = new MainViewModel(); viewModel.PropertyChanged += (s, e) => { Assert.AreEqual("SelectedCustomer", e.PropertyName); Assert.AreEqual(customer, viewModel.SelectedCustomer); }; viewModel.SelectedCustomer = customer; }
public void SettingCustomersToMainViewModelTriggersPropertyChanged() { List<Customer> customers = new List<Customer>() { new Customer() {Name="A"}, new Customer() {Name="B"}, new Customer() {Name="C"} }; MainViewModel viewModel = new MainViewModel(); viewModel.PropertyChanged += (s, e) => { Assert.AreEqual("Customers", e.PropertyName); Assert.AreEqual(customers, viewModel.Customers); }; viewModel.Customers = customers; }
/// <summary> /// Creates an instance of the ShowStatsCommand. /// </summary> /// <param name="mainViewModel">A view model on which command's method will be invoked.</param> public ShowStatsCommand(MainViewModel mainViewModel) { this.mainViewModel = mainViewModel; }
/// <summary> /// Creates an instance of the GetDataCommand. /// </summary> /// <param name="viewModel">A view model on which command's method will be invoked.</param> internal GetDataCommand(MainViewModel viewModel) { this.customerViewModel = viewModel; }
/// <summary> /// Creates an instance of the AddCustomerCommand. /// </summary> /// <param name="mainViewModel">A view model on which command's method will be invoked.</param> public AddCustomerCommand(MainViewModel mainViewModel) { this.mainViewModel = mainViewModel; }