public async Task Submit() { // Arrange var viewModel = GetViewModel(); var user = new UserMock { ProfileID = Guid.NewGuid().ToString() }; ObjectFactory.CreateAsyncWithCriteriaDelegate = (criteria) => { return user; }; string actualProfileId = null; UserIdentityObjectFactory.FetchAsyncWithCriteriaDelegate = (profileId) => { actualProfileId = (string)profileId; return new UserIdentityMock(); }; var userSaved = false; user.SaveAsyncDelegate = () => { userSaved = true; return user; }; Type actualType = null; Navigation.NavigateToViewModelDelegate = ((type) => { actualType = type; }); viewModel.Parameter = Serializer.Serialize(new NavigationCriteria.RegistrationPageNavigationCriteria { ProfileId = Guid.NewGuid().ToString() }); ((IActivate)viewModel).Activate(); // Act await viewModel.Submit(); // Assert Assert.IsTrue(userSaved, "User Saved"); Assert.AreEqual(typeof(PollsPageViewModel), actualType, "Navigation Type"); Assert.AreEqual(user.ProfileID, actualProfileId, "Loaded Profile Id"); Assert.IsNotNull(Csla.ApplicationContext.User, "CSLA User"); }
public async Task CreateUserAsync() { // Arrange var viewModel = GetViewModel(); var user = new UserMock(); ObjectFactory.CreateAsyncWithCriteriaDelegate = (criteria) => { return user; }; viewModel.Parameter = Serializer.Serialize(new NavigationCriteria.RegistrationPageNavigationCriteria { ProfileId = Guid.NewGuid().ToString() }); // Act await viewModel.CreateUserAsync(); // Assert Assert.AreSame(user, viewModel.User); }
public async Task CanSave() { // Arrange var viewModel = GetViewModel(); var user = new UserMock(); ObjectFactory.CreateAsyncWithCriteriaDelegate = (criteria) => { return user; }; user.IsSavable = true; viewModel.Parameter = Serializer.Serialize(new NavigationCriteria.RegistrationPageNavigationCriteria { ProfileId = Guid.NewGuid().ToString() }); await viewModel.CreateUserAsync(); // Act // Assert Assert.IsTrue(viewModel.CanSave, "Can Save"); }
public async Task SubmitWithError() { // Arrange var viewModel = GetViewModel(); var user = new UserMock(); ObjectFactory.CreateAsyncWithCriteriaDelegate = (criteria) => { return user; }; user.SaveAsyncDelegate = () => { throw new DataPortalException(string.Empty, new UserMock()); }; var navigated = false; Navigation.NavigateToViewModelWithParameterDelegate = ((type, param) => { navigated = true; }); var messageBoxShown = false; MessageBox.ShowAsyncWithTitleDelegate = (message, title, buttons) => { messageBoxShown = true; return true; }; viewModel.Parameter = Serializer.Serialize(new NavigationCriteria.RegistrationPageNavigationCriteria { ProfileId = Guid.NewGuid().ToString() }); await viewModel.CreateUserAsync(); // Act await viewModel.Submit(); // Assert Assert.IsFalse(navigated, "Navigated"); Assert.IsTrue(messageBoxShown, "Message box shown."); }