コード例 #1
0
        protected void Configure()
        {
            var mockEventAggregator           = new MockEventAggregator();
            var mockSubsonicService           = new MockSubsonicService();
            var mockNavigationService         = new MockNavigationService();
            var mockNotificationService       = new MockToastNotificationService();
            var mockDialogNotificationService = new MockDialogNotificationService();
            var mockStorageService            = new MockStorageService();
            var mockWinRTWrappersService      = new MockWinRTWrappersService();
            var shellViewModel = new ShellViewModel(mockEventAggregator, mockSubsonicService, mockNavigationService,
                                                    mockNotificationService, mockDialogNotificationService, mockStorageService, mockWinRTWrappersService);

            IoC.GetInstance = (type, s) =>
            {
                object instance = null;
                if (type == typeof(IShellViewModel))
                {
                    instance = shellViewModel;
                }
                else if (type == typeof(ISubsonicService))
                {
                    instance = mockSubsonicService;
                }
                return(instance);
            };
        }
コード例 #2
0
 protected override void TestInitializeExtensions()
 {
     base.TestInitializeExtensions();
     IoC.GetInstance         = (type, s) => null;
     _mockSubsonicService    = new MockSubsonicService();
     Subject.NavigateOnPlay  = MockNavigationService.DoNavigate;
     Subject.SubsonicService = _mockSubsonicService;
 }
コード例 #3
0
        public async Task Populate_WhenServiceIsNotConfigured_ShouldShowTheSettingsPanel()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(false);

            await Subject.Populate();

            _mockDialogService.ShowSettingsCallCount.Should().Be(1);
        }
コード例 #4
0
 public void Setup()
 {
     _mockSubsonicService          = new MockSubsonicService();
     _mockStorageService           = new MockStorageService();
     _mockToastNotificationService = new MockToastNotificationService();
     _mockNavigationService        = new MockNavigationService();
     _subject = new SettingsViewModel(_mockSubsonicService, _mockToastNotificationService, _mockStorageService, _mockNavigationService);
 }
コード例 #5
0
        public async Task PopulateWhenServiceIsConfiguredShouldExecuteAGetRootResult()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(true);

            await Task.Run(() => Subject.Populate());

            _mockGetRootResult.ExecuteCallCount.Should().Be(1);

            MockSubsonicService.SetHasValidSubsonicUrl(false);
        }
コード例 #6
0
        public async Task PopulateWhenServiceIsConfiguredAndPingResultIsOkShouldExecuteAGetRootResult()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(true);
            MockSubsonicService.Ping = () => new MockPingResult();

            await Subject.Populate();

            _mockGetRootResult.ExecuteCallCount.Should().Be(1);

            MockSubsonicService.SetHasValidSubsonicUrl(false);
        }
コード例 #7
0
        public void CoverArtShouldCallSubsonicServiceGetCoverArtForId()
        {
            var subsonicService = new MockSubsonicService();

            IoC.GetInstance = (type, s) => type == typeof(ISubsonicService) ? subsonicService : null;

            var coverArt = Subject.CoverArt;

            coverArt.Should().Be("http://test.mock");
            subsonicService.GetCoverArtForIdCallCount.Should().Be(1);
        }
コード例 #8
0
        public async Task Populate_WhenServiceIsNotConfigured_ShouldShowANotification()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(false);

            await Task.Run(() => Subject.Populate());

            MockDialogNotificationService.Showed.Count.Should().Be(1);
            const string expectedMessage =
                "You did not set up your connection. Please fill in you server address, username and password to start browsing.";

            MockDialogNotificationService.Showed[0].Message.Should().Be(expectedMessage);
        }
コード例 #9
0
 public void Setup()
 {
     _song = new Song
     {
         Artist   = "testArtist",
         Name     = "testTitle",
         Id       = 121,
         CoverArt = "test123",
         Duration = 123,
         IsVideo  = true
     };
     _mockSubsonicService = new MockSubsonicService();
     _subject             = _song.AsPlaylistItem(_mockSubsonicService);
 }
コード例 #10
0
 public void TestInitialize()
 {
     IoC.GetInstance                = (type, s) => null;
     _mockSubsonicService           = new MockSubsonicService();
     _mockNavigationService         = new MockNavigationService();
     _mockToastNotificationService  = new MockToastNotificationService();
     _mockDialogNotificationService = new MockDialogNotificationService();
     _mockStorageService            = new MockStorageService();
     _mockWinRTWrappersService      = new MockWinRTWrappersService();
     _mockPlayerControls            = new MockPlayerControls();
     Subject = new ShellViewModel(_eventAggregator, _mockSubsonicService, _mockNavigationService,
                                  _mockToastNotificationService, _mockDialogNotificationService, _mockStorageService, _mockWinRTWrappersService)
     {
         PlayerControls = _mockPlayerControls
     };
 }
コード例 #11
0
        public async Task Populate_WhenServiceIsConfigured_WillRunAPingResult()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(true);
            var mockPingResult = new MockPingResult();
            var callCount      = 0;

            MockSubsonicService.Ping = () =>
            {
                callCount++;
                return(mockPingResult);
            };

            await Subject.Populate();

            callCount.Should().Be(1);
            mockPingResult.ExecuteCallCount.Should().Be(1);
        }
コード例 #12
0
        public async Task Populate_PingResultHasError_CallsErrorDialogViewModelHandle()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(true);
            var apiException = new ApiException(new Error {
                Message = "test_m"
            });
            var mockPingResult = new MockPingResult {
                GetErrorFunc = () => apiException
            };

            MockSubsonicService.Ping = () => mockPingResult;

            await Subject.Populate();

            MockErrorDialogViewModel.HandledErrors.Count().Should().Be(1);
            MockErrorDialogViewModel.HandledErrors.First().Should().Be(apiException);
        }
コード例 #13
0
        public async Task PopulateWhenResultIsSuccessfull()
        {
            MockSubsonicService.SetHasValidSubsonicUrl(true);
            MockSubsonicService.Ping            = () => new MockPingResult();
            MockSubsonicService.GetMusicFolders =
                () =>
                new MockGetRootResult
            {
                GetResultFunc =
                    () => new List <MusicFolder> {
                    new MusicFolder(), new MusicFolder()
                }
            };

            await Subject.Populate();

            Subject.MenuItems.Should().HaveCount(2);
        }
コード例 #14
0
 public void TestInitialize()
 {
     MockSubsonicService           = new MockSubsonicService();
     MockNavigationService         = new MockNavigationService();
     MockDialogNotificationService = new MockDialogNotificationService();
     MockEventAggregator           = new MockEventAggregator();
     MockErrorDialogViewModel      = new MockErrorDialogViewModel();
     Subject = new TViewModel
     {
         EventAggregator      = MockEventAggregator,
         SubsonicService      = MockSubsonicService,
         NavigationService    = MockNavigationService,
         NotificationService  = MockDialogNotificationService,
         UpdateDisplayName    = () => Subject.DisplayName = string.Empty,
         ErrorDialogViewModel = MockErrorDialogViewModel
     };
     TestInitializeExtensions();
 }
コード例 #15
0
 public void TestInitialize()
 {
     MockDefaultBottomBar          = new MockDefaultBottomBarViewModel();
     MockSubsonicService           = new MockSubsonicService();
     MockNavigationService         = new MockNavigationService();
     MockDialogNotificationService = new MockDialogNotificationService();
     MockEventAggregator           = new MockEventAggregator();
     Subject = new TViewModel
     {
         EventAggregator     = MockEventAggregator,
         BottomBar           = MockDefaultBottomBar,
         SubsonicService     = MockSubsonicService,
         NavigationService   = MockNavigationService,
         NotificationService = MockDialogNotificationService,
         UpdateDisplayName   = () => Subject.DisplayName = ""
     };
     TestInitializeExtensions();
 }
コード例 #16
0
 public void Setup()
 {
     _subject             = new PlaylistItem();
     _mockSubsonicService = new MockSubsonicService();
 }
コード例 #17
0
 public void Setup()
 {
     _song = new Song
                 {
                     Artist = "testArtist", 
                     Name = "testTitle", 
                     Id = 121, 
                     CoverArt = "test123", 
                     Duration = 123, 
                     IsVideo = true
                 };
     _mockSubsonicService = new MockSubsonicService();
     _subject = _song.AsPlaylistItem(_mockSubsonicService);
 }
コード例 #18
0
 protected override void TestInitializeExtensions()
 {
     base.TestInitializeExtensions();
     _mockSubsonicService    = new MockSubsonicService();
     Subject.SubsonicService = _mockSubsonicService;
 }