예제 #1
0
        public override void Save()
        {
            base.Save();
            TraktPluginSettings settings = SettingsManager.Load <TraktPluginSettings>();

            if (Selected == 0)
            {
                settings.SyncSeriesAndMovies = true;
                settings.SyncOnlyMovies      = false;
                settings.SyncOnlySeries      = false;
            }
            else if (Selected == 1)
            {
                settings.SyncOnlySeries      = true;
                settings.SyncSeriesAndMovies = false;
                settings.SyncOnlyMovies      = false;
            }
            else
            {
                settings.SyncOnlyMovies      = true;
                settings.SyncSeriesAndMovies = false;
                settings.SyncOnlySeries      = false;
            }
            SettingsManager.Save(settings);
        }
        public void StartScrobble(TraktPluginSettings settings, MediaItem mediaItem, ITraktClient traktClient, ITraktNotification notification)
        {
            // Arrange
            IMediaPortalServices mediaPortalServices = Substitute.For <IMediaPortalServices>();

            mediaPortalServices.GetTraktUserHomePath().Returns(DataPath);
            SetSettings(mediaPortalServices, settings);
            SetPlayerAndContentDirForMovie(mediaPortalServices, mediaItem);

            IAsynchronousMessageQueue messageQueue = GetMockedMsgQueue(mediaPortalServices);

            IFileOperations fileOperations = Substitute.For <IFileOperations>();

            fileOperations.FileExists(Path.Combine(DataPath, FileName.Authorization.Value)).Returns(true);

            TraktScrobbleHandlerManager      traktScrobbleHandler = new TraktScrobbleHandlerManager(mediaPortalServices, traktClient, fileOperations);
            TraktScrobbleStartedNotification expectedNotification = (TraktScrobbleStartedNotification)notification;

            // Act
            // start the player
            messageQueue.MessageReceivedProxy += Raise.Event <MessageReceivedHandler>(new AsynchronousMessageQueue(new object(), new[] { "PlayerManager" }),
                                                                                      GetSystemMessageForMessageType(PlayerManagerMessaging.MessageType.PlayerStarted));

            // Assert
            mediaPortalServices.GetTraktNotificationModel().Received()
            .ShowNotification(Arg.Is <TraktScrobbleStartedNotification>(x => x.IsSuccess == expectedNotification.IsSuccess &&
                                                                        x.Message == expectedNotification.Message &&
                                                                        x.ActionType == expectedNotification.ActionType &&
                                                                        x.Progress == expectedNotification.Progress &&
                                                                        x.SuperLayerScreenName == expectedNotification.SuperLayerScreenName),
                              Arg.Any <TimeSpan>());
        }
        public void EnableTraktScrobbleHandlerWhenUserChanged()
        {
            // Arrange
            IMediaPortalServices mediaPortalServices = Substitute.For <IMediaPortalServices>();

            mediaPortalServices.GetTraktUserHomePath().Returns(DataPath);
            TraktPluginSettings settings = new TraktPluginSettings
            {
                IsScrobbleEnabled = false
            };
            ITraktSettingsChangeWatcher settingsChangeWatcher = Substitute.For <ITraktSettingsChangeWatcher>();

            settingsChangeWatcher.TraktSettings.Returns(settings);
            mediaPortalServices.GetTraktSettingsWatcher().Returns(settingsChangeWatcher);

            IUserMessageHandler userMessageHandler = Substitute.For <IUserMessageHandler>();

            mediaPortalServices.GetUserMessageHandler().Returns(userMessageHandler);

            ITraktClient    traktClient    = Substitute.For <ITraktClient>();
            IFileOperations fileOperations = Substitute.For <IFileOperations>();

            fileOperations.FileExists(Path.Combine(DataPath, FileName.Authorization.Value)).Returns(true);

            TraktScrobbleHandlerManager traktScrobbleHandler = new TraktScrobbleHandlerManager(mediaPortalServices, traktClient, fileOperations);

            // Act
            settings.IsScrobbleEnabled           = true;
            userMessageHandler.UserChangedProxy += Raise.Event();

            // Assert
            Assert.True(traktScrobbleHandler.IsActive);
        }
예제 #4
0
        public void ShouldEnableTraktSyncHandlerWhenSettingsChange()
        {
            // Arrange
            IMediaPortalServices mediaPortalServices = Substitute.For <IMediaPortalServices>();

            mediaPortalServices.GetTraktUserHomePath().Returns(DataPath);
            TraktPluginSettings settings = new TraktPluginSettings
            {
                IsAutomaticLibrarySyncEnabled = false
            };
            ITraktSettingsChangeWatcher settingsChangeWatcher = Substitute.For <ITraktSettingsChangeWatcher>();

            settingsChangeWatcher.TraktSettings.Returns(settings);
            mediaPortalServices.GetTraktSettingsWatcher().Returns(settingsChangeWatcher);

            ISettingsManager settingsManager = Substitute.For <ISettingsManager>();

            settingsManager.Load <TraktPluginSettings>().Returns(settings);
            mediaPortalServices.GetSettingsManager().Returns(settingsManager);

            ILibrarySynchronization librarySynchronization = Substitute.For <ILibrarySynchronization>();
            IFileOperations         fileOperations         = Substitute.For <IFileOperations>();

            fileOperations.FileExists(Path.Combine(DataPath, FileName.Authorization.Value)).Returns(true);

            TraktSyncHandlerManager traktSyncHandler = new TraktSyncHandlerManager(mediaPortalServices, librarySynchronization, fileOperations);

            // Act
            settings.IsAutomaticLibrarySyncEnabled      = true;
            settingsChangeWatcher.TraktSettingsChanged += Raise.Event();

            // Assert
            Assert.True(traktSyncHandler.IsActive);
        }
        private void SetSettings(IMediaPortalServices mediaPortalServices, TraktPluginSettings settings)
        {
            ITraktSettingsChangeWatcher settingsChangeWatcher = Substitute.For <ITraktSettingsChangeWatcher>();

            settingsChangeWatcher.TraktSettings.Returns(settings);
            mediaPortalServices.GetTraktSettingsWatcher().Returns(settingsChangeWatcher);

            ISettingsManager settingsManager = Substitute.For <ISettingsManager>();

            settingsManager.Load <TraktPluginSettings>().Returns(settings);
            mediaPortalServices.GetSettingsManager().Returns(settingsManager);
        }
예제 #6
0
        public override void Load()
        {
            TraktPluginSettings settings = SettingsManager.Load <TraktPluginSettings>();

            if (settings.ShowScrobbleStoppedNotifications && settings.ShowScrobbleStoppedNotificationsOnFailure)
            {
                Selected = 0;
            }
            else if (!settings.ShowScrobbleStoppedNotifications && settings.ShowScrobbleStoppedNotificationsOnFailure)
            {
                Selected = 1;
            }
            else
            {
                Selected = 2;
            }
        }
예제 #7
0
        public override void Load()
        {
            TraktPluginSettings settings = SettingsManager.Load <TraktPluginSettings>();

            if (settings.SyncSeriesAndMovies && !settings.SyncOnlySeries && !settings.SyncOnlyMovies)
            {
                Selected = 0;
            }
            else if (!settings.SyncSeriesAndMovies && !settings.SyncOnlyMovies)
            {
                Selected = 1;
            }
            else
            {
                Selected = 2;
            }
        }
예제 #8
0
        public override void Save()
        {
            base.Save();
            TraktPluginSettings settings = SettingsManager.Load <TraktPluginSettings>();

            if (Selected == 0)
            {
                settings.ShowScrobbleStoppedNotifications          = true;
                settings.ShowScrobbleStoppedNotificationsOnFailure = true;
            }
            else if (Selected == 1)
            {
                settings.ShowScrobbleStoppedNotificationsOnFailure = true;
                settings.ShowScrobbleStoppedNotifications          = false;
            }
            else
            {
                settings.ShowScrobbleStoppedNotificationsOnFailure = false;
                settings.ShowScrobbleStoppedNotifications          = false;
            }
            SettingsManager.Save(settings);
        }