public void TextOnLables() { //Für den ServiceProviderMock //Muss enthalten sein, damit der Mock nicht überschrieben wird IServiceProvider unused = ServiceManager.ServiceProvider; //Feld Infos holen FieldInfo rootServiceProvider = typeof(ServiceManager).GetField("_serviceProvider", BindingFlags.Static | BindingFlags.NonPublic); FieldInfo currentMediaManager = typeof(MusicModeViewModel).GetField("_mediaManager", BindingFlags.Static | BindingFlags.NonPublic); // skip scanning popup ScanningPopUpViewModel.IsConnected = true; //Mocksaufsetzen //ServiceProvider Mock <IServiceProvider> mockSingleton = new Mock <IServiceProvider>(); Mock <IServiceProvider> mockActivityServiceProvider = new Mock <IServiceProvider>(); //Service der gemockt werden soll Mock <IEarablesConnection> mockEarablesConnection = new Mock <IEarablesConnection>(); Mock <AbstractRunningActivity> mockRunningActivity = new Mock <AbstractRunningActivity>(); Mock <IActivityManager> mockActivityManager = new Mock <IActivityManager>(); Mock <IMediaManager> mockCrossMediaManager = new Mock <IMediaManager>(); //Verhalten für die Mocks festlegen (Bei Aufruf was zurückgegeben werden soll) // Nachverfolgen, ob Sampling aktiviert wurde bool samplingActive = false; mockEarablesConnection.As <IEarablesConnection>().Setup(x => x.StartSampling()).Callback(() => { samplingActive = true; }); mockEarablesConnection.As <IEarablesConnection>().Setup(x => x.StopSampling()).Callback(() => { samplingActive = false; }); // Service mockActivityManager.As <IActivityManager>().Setup(x => x.ActitvityProvider).Returns(mockActivityServiceProvider.Object); mockActivityServiceProvider.Setup(x => x.GetService(typeof(AbstractRunningActivity))).Returns(mockRunningActivity.Object); mockSingleton.Setup(x => x.GetService(typeof(IEarablesConnection))).Returns(mockEarablesConnection.Object); mockSingleton.Setup(x => x.GetService(typeof(IActivityManager))).Returns(mockActivityManager.Object); // Track if music was started bool musicPlaying = false; mockCrossMediaManager.Setup(x => x.Play()).Callback(() => { musicPlaying = true; }); mockCrossMediaManager.Setup(x => x.Pause()).Callback(() => { musicPlaying = false; }); //ServiceProvider anlegen rootServiceProvider.SetValue(null, mockSingleton.Object); currentMediaManager.SetValue(null, mockCrossMediaManager.Object); var vm = new MusicModeViewModel(); ////////////////////////////////////////////////////////////////////////////////////////////// // Everything Mocked, ready to start some tests if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("Launch the music mode to enjoy a whole new listening experience! Music plays exactly when you walk!", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Starten Sie den Musikmodus, um eine ganz neue Hörerfahrung zu genießen! Die Musik spielt genau dann, wenn Sie gehen!", vm.CurrentStatusLabel); } Assert.Equal("Start", vm.StartStopLabel); vm.ToggleMusicMode.Execute(null); Assert.Equal("Stop", vm.StartStopLabel); var args = new RunningEventArgs(false); vm.OnActivityDone(null, args); Assert.Equal("Stop", vm.StartStopLabel); if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("You are standing", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Du stehst gerade", vm.CurrentStatusLabel); } // starting to walk args = new RunningEventArgs(true); vm.OnActivityDone(null, args); Assert.Equal("Stop", vm.StartStopLabel); if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("You are walking", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Du gehst gerade", vm.CurrentStatusLabel); } vm.ToggleMusicMode.Execute(null); Assert.Equal("Start", vm.StartStopLabel); if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("Launch the music mode to enjoy a whole new listening experience! Music plays exactly when you walk!", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Starten Sie den Musikmodus, um eine ganz neue Hörerfahrung zu genießen! Die Musik spielt genau dann, wenn Sie gehen!", vm.CurrentStatusLabel); } vm.ToggleMusicMode.Execute(null); Assert.Equal("Stop", vm.StartStopLabel); args = new RunningEventArgs(true); vm.OnActivityDone(null, args); Assert.Equal("Stop", vm.StartStopLabel); if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("You are walking", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Du gehst gerade", vm.CurrentStatusLabel); } vm.StopActivity(); Assert.Equal("Start", vm.StartStopLabel); if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "eng") { Assert.Equal("Launch the music mode to enjoy a whole new listening experience! Music plays exactly when you walk!", vm.CurrentStatusLabel); } else if (CultureInfo.CurrentUICulture.ThreeLetterISOLanguageName == "deu") { Assert.Equal("Starten Sie den Musikmodus, um eine ganz neue Hörerfahrung zu genießen! Die Musik spielt genau dann, wenn Sie gehen!", vm.CurrentStatusLabel); } }
public void OnRunningDone(object sender, ActivityArgs args) { RunningEventArgs RunningEvent = (RunningEventArgs)args; //IsRunning = RunningEvent.Running; }
public void MusicPlayingCorrectly() { //Für den ServiceProviderMock //Muss enthalten sein, damit der Mock nicht überschrieben wird IServiceProvider unused = ServiceManager.ServiceProvider; //Feld Infos holen FieldInfo rootServiceProvider = typeof(ServiceManager).GetField("_serviceProvider", BindingFlags.Static | BindingFlags.NonPublic); FieldInfo currentMediaManager = typeof(MusicModeViewModel).GetField("_mediaManager", BindingFlags.Static | BindingFlags.NonPublic); // skip scanning popup ScanningPopUpViewModel.IsConnected = true; //Mocksaufsetzen //ServiceProvider Mock <IServiceProvider> mockSingleton = new Mock <IServiceProvider>(); Mock <IServiceProvider> mockActivityServiceProvider = new Mock <IServiceProvider>(); //Service der gemockt werden soll Mock <IEarablesConnection> mockEarablesConnection = new Mock <IEarablesConnection>(); Mock <AbstractRunningActivity> mockRunningActivity = new Mock <AbstractRunningActivity>(); Mock <IActivityManager> mockActivityManager = new Mock <IActivityManager>(); Mock <IMediaManager> mockCrossMediaManager = new Mock <IMediaManager>(); //Verhalten für die Mocks festlegen (Bei Aufruf was zurückgegeben werden soll) // Nachverfolgen, ob Sampling aktiviert wurde bool samplingActive = false; mockEarablesConnection.As <IEarablesConnection>().Setup(x => x.StartSampling()).Callback(() => { samplingActive = true; }); mockEarablesConnection.As <IEarablesConnection>().Setup(x => x.StopSampling()).Callback(() => { samplingActive = false; }); // Service mockActivityManager.As <IActivityManager>().Setup(x => x.ActitvityProvider).Returns(mockActivityServiceProvider.Object); mockActivityServiceProvider.Setup(x => x.GetService(typeof(AbstractRunningActivity))).Returns(mockRunningActivity.Object); mockSingleton.Setup(x => x.GetService(typeof(IEarablesConnection))).Returns(mockEarablesConnection.Object); mockSingleton.Setup(x => x.GetService(typeof(IActivityManager))).Returns(mockActivityManager.Object); // Track if music was started bool musicPlaying = false; mockCrossMediaManager.Setup(x => x.Play()).Callback(() => { musicPlaying = true; }); mockCrossMediaManager.Setup(x => x.Pause()).Callback(() => { musicPlaying = false; }); //ServiceProvider anlegen rootServiceProvider.SetValue(null, mockSingleton.Object); currentMediaManager.SetValue(null, mockCrossMediaManager.Object); var vm = new MusicModeViewModel(); ////////////////////////////////////////////////////////////////////////////////////////////// // Everything Mocked, ready to start some tests Assert.False(musicPlaying); vm.ToggleMusicMode.Execute(null); Assert.False(musicPlaying); var args = new RunningEventArgs(false); vm.OnActivityDone(null, args); Assert.False(musicPlaying); // starting to walk args = new RunningEventArgs(true); vm.OnActivityDone(null, args); Assert.True(musicPlaying); vm.ToggleMusicMode.Execute(null); Assert.False(musicPlaying); vm.ToggleMusicMode.Execute(null); Assert.False(musicPlaying); args = new RunningEventArgs(true); vm.OnActivityDone(null, args); Assert.True(musicPlaying); vm.StopActivity(); Assert.False(musicPlaying); }