public async Task LoadPollAsync() { // Arrange var viewModel = GetViewModel(); var random = new Random(); var principal = new PrincipalMock(); var identity = new UserIdentityMock(); identity.UserID = random.Next(); principal.Identity = identity; Csla.ApplicationContext.User = principal; var pollId = random.Next(); viewModel.Parameter = Serializer.Serialize( new ViewPollPageNavigationCriteria { PollId = pollId }); var pollSubmission = new PollSubmissionMock(); IPollSubmissionCommand actualCommand = null; ObjectFactory.CreateAsyncDelegate = () => new PollSubmissionCommandMock(); ObjectFactory.ExecuteAsyncDelegate = (command) => { actualCommand = command; return new PollSubmissionCommandMock { Submission = pollSubmission }; }; var didNavigate = false; Navigation.NavigateToViewModelWithParameterDelegate = ((type, param) => { didNavigate = true; }); // Act await viewModel.LoadPollAsync(); // Assert Assert.IsFalse(didNavigate, "Did Navigate"); Assert.AreEqual(identity.UserID, actualCommand.UserID, "UserID"); Assert.AreEqual(pollId, actualCommand.PollID, "PollID"); }
public async Task SignInWithTwitter() { // Arrange var viewModel = GetViewModel(); var userId = Guid.NewGuid().ToString(); AuthenticationProvider? actualProvider = null; AuthenticationService.AuthenticateWithProviderDelegate = ((provider) => { actualProvider = provider; return userId; }); Type actualType = null; RegistrationPageNavigationCriteria actualParam = null; Navigation.NavigateToViewModelWithParameterDelegate = ((type, param) => { actualType = type; actualParam = (RegistrationPageNavigationCriteria)param; }); var identity = new UserIdentityMock { IsAuthenticated = false }; this.ObjectFactory.FetchAsyncWithCriteriaDelegate = (profileId) => { return identity; }; // Act await viewModel.SignInWithTwitter(); // Assert Assert.AreEqual(AuthenticationProvider.Twitter, actualProvider, "Provider"); Assert.AreEqual(typeof(RegistrationPageViewModel), actualType, "Navigation Type"); Assert.AreEqual(userId, actualParam.ProfileId, "Profile Id"); }
public void AutoSignInProfileDoesNotExist() { // Arrange var viewModel = GetViewModel(); AppSettings.TryGetValueDelegate = (key, value) => { return false; }; Type actualType = null; Navigation.NavigateToViewModelDelegate = ((type) => { actualType = type; }); var identity = new UserIdentityMock { IsAuthenticated = true }; this.ObjectFactory.FetchAsyncWithCriteriaDelegate = (profileIdParam) => { return identity; }; // Act ((IActivate)viewModel).Activate(); // Assert Assert.IsNull(actualType, "Type"); }
public void AutoSignInProfileExists() { // Arrange var viewModel = GetViewModel(); var profileId = Guid.NewGuid().ToString(); AppSettings.TryGetValueDelegate = (key, value) => { value = profileId; return true; }; Type actualType = null; Navigation.NavigateToViewModelDelegate = ((type) => { actualType = type; }); var identity = new UserIdentityMock { IsAuthenticated = true }; this.ObjectFactory.FetchAsyncWithCriteriaDelegate = (profileIdParam) => { return identity; }; // Act ((IActivate)viewModel).Activate(); // Assert Assert.AreEqual(typeof(PollsPageViewModel), actualType, "Type"); }
public async Task SignInProfileExists() { // Arrange var viewModel = GetViewModel(); var userId = Guid.NewGuid().ToString(); AuthenticationProvider? actualProvider = null; AuthenticationService.AuthenticateWithProviderDelegate = ((provider) => { actualProvider = provider; return userId; }); Type actualType = null; Navigation.NavigateToViewModelDelegate = ((type) => { actualType = type; }); var identity = new UserIdentityMock { IsAuthenticated = true }; this.ObjectFactory.FetchAsyncWithCriteriaDelegate = (profileId) => { return identity; }; // Act await viewModel.SignInWithGoogle(); // Assert Assert.AreEqual(AuthenticationProvider.Google, actualProvider, "Provider"); Assert.AreEqual(typeof(PollsPageViewModel), actualType, "Type"); }
public async Task SharePoll() { // Arrange var viewModel = GetViewModel(); var random = new Random(); var principal = new PrincipalMock(); var identity = new UserIdentityMock(); identity.UserID = random.Next(); principal.Identity = identity; Csla.ApplicationContext.User = principal; var pollId = random.Next(); var pollSubmission = new PollSubmissionMock { PollID = pollId }; ObjectFactory.CreateAsyncDelegate = () => new PollSubmissionCommandMock(); ObjectFactory.ExecuteAsyncDelegate = (command) => { return new PollSubmissionCommandMock { Submission = pollSubmission }; }; var wasShareManagerInitialized = false; ShareManager.InitializeDelegate = () => { wasShareManagerInitialized = true; }; viewModel.Parameter = Serializer.Serialize( new ViewPollPageNavigationCriteria { PollId = pollId }); await viewModel.LoadPollAsync(); ((IActivate)viewModel).Activate(); var dataPackage = new DataPackage(); var dataPackageView = dataPackage.GetView(); // Act ShareManager.ExecuteShareRequested(dataPackage); // Assert Assert.IsTrue(wasShareManagerInitialized, "Was Share Manager Initialized"); Assert.IsTrue(!string.IsNullOrEmpty(await dataPackageView.GetTextAsync()), "Text Exists"); Assert.AreEqual(string.Format("myvote://poll/{0}", pollId), (await dataPackageView.GetApplicationLinkAsync()).ToString(), "Uri"); Assert.IsTrue(!string.IsNullOrEmpty(await dataPackageView.GetHtmlFormatAsync()), "HTML Exists"); }
public async Task LoadPollAsyncWithError() { // Arrange var viewModel = GetViewModel(); var random = new Random(); var principal = new PrincipalMock(); var identity = new UserIdentityMock(); identity.UserID = random.Next(); principal.Identity = identity; Csla.ApplicationContext.User = principal; var pollId = random.Next(); viewModel.Parameter = Serializer.Serialize( new ViewPollPageNavigationCriteria { PollId = pollId }); ObjectFactory.CreateAsyncDelegate = () => new PollSubmissionCommandMock(); ObjectFactory.ExecuteAsyncDelegate = (command) => { throw new DataPortalException(null, command); }; var wasMessageBoxShown = false; MessageBox.ShowAsyncWithTitleDelegate = (message, title, buttons) => { wasMessageBoxShown = true; return true; }; // Act await viewModel.LoadPollAsync(); // Assert Assert.IsTrue(wasMessageBoxShown, "Was Message Box Shown"); }
public async Task LoadPollAsyncAlreadyVoted() { // Arrange var viewModel = GetViewModel(); var random = new Random(); var principal = new PrincipalMock(); var identity = new UserIdentityMock(); identity.UserID = random.Next(); principal.Identity = identity; Csla.ApplicationContext.User = principal; var pollId = random.Next(); viewModel.Parameter = Serializer.Serialize( new ViewPollPageNavigationCriteria { PollId = pollId }); Type actualType = null; PollResultsPageNavigationCriteria actualParam = null; ObjectFactory.CreateAsyncDelegate = () => new PollSubmissionCommandMock(); ObjectFactory.ExecuteAsyncDelegate = command => new PollSubmissionCommandMock(); Navigation.NavigateToViewModelAndRemoveCurrentWithParameterDelegate = ((type, param) => { actualType = type; actualParam = (PollResultsPageNavigationCriteria)param; }); // Act await viewModel.LoadPollAsync(); // Assert Assert.AreEqual(typeof(PollResultsPageViewModel), actualType, "Navigation Type"); Assert.AreEqual(pollId, actualParam.PollId, "Navigated Poll Id"); }