public void SetupViewModelTests() { // arrange var vm = new SelectPersonViewModel(); var baseMethodWasCalled = false; Mock.Arrange(() => new SelectPersonViewModelBase().SetupViewModel(SelectionMode.Single)).DoInstead(() => baseMethodWasCalled = true); var account = Mock.Create<IAccount>(Behavior.CallOriginal); // act vm.SetupViewModel(SelectionMode.Single, account); // assert Assert.IsTrue(baseMethodWasCalled); Assert.AreEqual(account, new PrivateAccessor(vm).GetField("_selectedAccount")); }
public void RefreshTests() { // arrange var vm = new SelectPersonViewModel(); var getFilterWasCalled = false; Mock.NonPublic.Arrange<MobileObservableCollection<IFilterDescriptor>>(vm, "GetFilter").DoInstead(() => getFilterWasCalled = true); var dynamicTypeManager = Mock.Create<IDynamicTypeManager>(Behavior.CallOriginal); Mock.Arrange(() => dynamicTypeManager.GetCustomType(Constants.AccountProcessName, "LinkablePersonList", true)) .DoInstead(() => Assert.IsTrue(vm.IsBusy)) .Returns(typeof(object)); vm.TheDynamicTypeManager = dynamicTypeManager; var account = Mock.Create<IAccount>(Behavior.Loose); var privateAccessor = new PrivateAccessor(vm); privateAccessor.SetField("_selectedAccount", account); var basePersonList = Mock.Create<IList>(Behavior.Loose); Mock.Arrange(() => MethodCaller.CallFactoryMethod(Arg.IsAny<Type>(), "Get__AccountLinkablePersonListAsync", Arg.AnyInt, Arg.IsAny<int?>(), Arg.IsAny<PagedCriteria>())) .Returns(() => { var tcs = new TaskCompletionSource<IList>(); tcs.SetResult(basePersonList); return tcs.Task; }); // act privateAccessor.CallMethod("Refresh"); // assert Assert.IsTrue(getFilterWasCalled); Assert.AreEqual(basePersonList, vm.PersonList); Assert.IsFalse(vm.IsBusy); }