Esempio n. 1
0
            public async Task ClearsPrivateSharedStorage()
            {
                doNotShowConfirmationDialog();
                await ViewModel.TryLogout();

                PrivateSharedStorageService.Received().ClearAll();
            }
            public void ReturnsTrueIfTheUserDataWasStoredInThePrivateStorage()
            {
                PrivateSharedStorageService.HasUserDataStored().Returns(true);
                PrivateSharedStorageService.GetApiToken().Returns("ApiToken");

                var result = UserAccessManager.CheckIfLoggedIn();

                result.Should().BeTrue();
            }
Esempio n. 3
0
            public async Task ClearsPrivateSharedStorage()
            {
                doNotShowConfirmationDialog();

                ViewModel.TryLogout.Execute();
                TestScheduler.Start();

                PrivateSharedStorageService.Received().ClearAll();
            }
            public void ReturnsTrueTheUserExistsInTheDatabase()
            {
                var observable = Observable.Return <IDatabaseUser>(FoundationUser.Clean(User));

                Database.User.Single().Returns(observable);
                PrivateSharedStorageService.HasUserDataStored().Returns(false);

                var result = UserAccessManager.CheckIfLoggedIn();

                result.Should().BeTrue();
            }
            public void ReturnsFalseIfTheDatabaseHasNoUsers()
            {
                var observable = Observable.Throw <IDatabaseUser>(new InvalidOperationException());

                Database.User.Single().Returns(observable);
                PrivateSharedStorageService.HasUserDataStored().Returns(false);

                var result = UserAccessManager.CheckIfLoggedIn();

                result.Should().BeFalse();
            }
            public void EmitsWhenUserIsLoggedInAndDataIsAlreadyStoredInThePrivateStorage()
            {
                var observer = Substitute.For <IObserver <ITogglApi> >();

                UserAccessManager.UserLoggedIn.Subscribe(observer);
                PrivateSharedStorageService.HasUserDataStored().Returns(true);
                PrivateSharedStorageService.GetApiToken().Returns("ApiToken");

                UserAccessManager.LoginWithSavedCredentials();

                observer.Received().OnNext(Arg.Any <ITogglApi>());
            }
            public void ReturnsTrueAndStoresTheUserDataIfUserIsInTheDatabaseButNotInThePrivateStorage()
            {
                PrivateSharedStorageService.HasUserDataStored().Returns(false);
                var observable = Observable.Return <IDatabaseUser>(FoundationUser.Clean(User));

                Database.User.Single().Returns(observable);

                var result = UserAccessManager.CheckIfLoggedIn();

                result.Should().BeTrue();
                PrivateSharedStorageService.Received().SaveApiToken(Arg.Any <string>());
            }
        public async Task ClearsPrivateSharedStorage()
        {
            await interactor.Execute();

            PrivateSharedStorageService.Received().ClearAll();
        }
            public async Task SavesTheUserIdToPrivateSharedStorage()
            {
                await UserAccessManager.LoginWithGoogle();

                PrivateSharedStorageService.Received().SaveUserId(Arg.Any <long>());
            }
            public async Task SavesTheApiTokenToPrivateSharedStorage()
            {
                await UserAccessManager.LoginWithGoogle();

                PrivateSharedStorageService.Received().SaveApiToken(Arg.Any <string>());
            }
            public async Task SavesTheUserIdToPrivateSharedStorage()
            {
                await UserAccessManager.RefreshToken(Password);

                PrivateSharedStorageService.Received().SaveUserId(Arg.Any <long>());
            }
            public async Task SavesTheUserIdToPrivateSharedStorage()
            {
                await UserAccessManager.SignUp(Email, Password, TermsAccepted, CountryId, Timezone);

                PrivateSharedStorageService.Received().SaveUserId(Arg.Any <long>());
            }
Esempio n. 13
0
        protected override void InitializeApp(IMvxPluginManager pluginManager, IMvxApplication app)
        {
#if !USE_PRODUCTION_API
            System.Net.ServicePointManager.ServerCertificateValidationCallback
                += (sender, certificate, chain, sslPolicyErrors) => true;
#endif

            const string clientName = "Daneel";
            const string remoteConfigDefaultsFileName = "RemoteConfigDefaults";
            var          version     = NSBundle.MainBundle.InfoDictionary["CFBundleShortVersionString"].ToString();
            var          database    = new Database();
            var          scheduler   = Scheduler.Default;
            var          timeService = new TimeService(scheduler);
            var          topViewControllerProvider = (ITopViewControllerProvider)Presenter;
            var          mailService                 = new MailService(topViewControllerProvider);
            var          dialogService               = new DialogService(topViewControllerProvider);
            var          platformConstants           = new PlatformConstants();
            var          suggestionProviderContainer = new SuggestionProviderContainer(
                new MostUsedTimeEntrySuggestionProvider(database, timeService, maxNumberOfSuggestions)
                );
            var intentDonationService       = new IntentDonationService();
            var privateSharedStorageService = new PrivateSharedStorageService();

            var appVersion          = Version.Parse(version);
            var keyValueStorage     = new UserDefaultsStorage();
            var permissionsService  = new PermissionsService();
            var userAgent           = new UserAgent(clientName, version);
            var settingsStorage     = new SettingsStorage(Version.Parse(version), keyValueStorage);
            var remoteConfigService = new RemoteConfigService();
            remoteConfigService.SetupDefaults(remoteConfigDefaultsFileName);
            var schedulerProvider   = new IOSSchedulerProvider();
            var calendarService     = new CalendarService(permissionsService);
            var notificationService = new NotificationService(permissionsService, timeService);

            var foundation =
                TogglFoundation
                .ForClient(userAgent, appVersion)
                .WithDatabase(database)
                .WithScheduler(scheduler)
                .WithMailService(mailService)
                .WithTimeService(timeService)
                .WithApiEnvironment(environment)
                .WithGoogleService <GoogleService>()
                .WithRatingService <RatingService>()
                .WithLicenseProvider <LicenseProvider>()
                .WithAnalyticsService(analyticsService)
                .WithSchedulerProvider(schedulerProvider)
                .WithPlatformConstants(platformConstants)
                .WithRemoteConfigService(remoteConfigService)
                .WithNotificationService(notificationService)
                .WithApiFactory(new ApiFactory(environment, userAgent))
                .WithBackgroundService(new BackgroundService(timeService))
                .WithApplicationShortcutCreator <ApplicationShortcutCreator>()
                .WithSuggestionProviderContainer(suggestionProviderContainer)
                .WithIntentDonationService(intentDonationService)
                .WithPrivateSharedStorageService(privateSharedStorageService)
                .WithPlatformInfo(platformInfo)

                .StartRegisteringPlatformServices()
                .WithDialogService(dialogService)
                .WithLastTimeUsageStorage(settingsStorage)
                .WithBrowserService <BrowserService>()
                .WithKeyValueStorage(keyValueStorage)
                .WithUserPreferences(settingsStorage)
                .WithCalendarService(calendarService)
                .WithOnboardingStorage(settingsStorage)
                .WithNavigationService(navigationService)
                .WithPermissionsService(permissionsService)
                .WithAccessRestrictionStorage(settingsStorage)
                .WithPasswordManagerService <OnePasswordService>()
                .WithErrorHandlingService(new ErrorHandlingService(navigationService, settingsStorage))
                .WithFeedbackService(new FeedbackService(userAgent, mailService, dialogService, platformConstants))
                .Build();

            foundation.RevokeNewUserIfNeeded().Initialize();

            base.InitializeApp(pluginManager, app);
        }
Esempio n. 14
0
            public async Task SavesTheApiTokenToPrivateSharedStorage()
            {
                await LoginManager.RefreshToken(Password);

                PrivateSharedStorageService.Received().SaveApiToken(Arg.Any <string>());
            }
Esempio n. 15
0
            public async Task SavesTheApiTokenToPrivateSharedStorage()
            {
                await LoginManager.SignUp(Email, Password, TermsAccepted, CountryId);

                PrivateSharedStorageService.Received().SaveApiToken(Arg.Any <string>());
            }