예제 #1
0
        public void TestCancelFromNonOwner()
        {
            TestTrackOwner owner = null;
            PreviewTrack   track = null;

            AddStep("get track", () => Add(owner = new TestTrackOwner(track = getTrack())));
            AddStep("start", () => track.Start());
            AddStep("attempt stop", () => trackManager.StopAnyPlaying(this));
            AddAssert("not stopped", () => track.IsRunning);
            AddStep("stop by true owner", () => trackManager.StopAnyPlaying(owner));
            AddAssert("stopped", () => !track.IsRunning);
        }
        public void TestCurrentTrackChanges()
        {
            PreviewTrack   track = null;
            TestTrackOwner owner = null;

            AddStep("get track", () => Add(owner = new TestTrackOwner(track = getTrack())));
            AddUntilStep("wait loaded", () => track.IsLoaded);
            AddStep("start track", () => track.Start());
            AddAssert("current is track", () => trackManager.CurrentTrack == track);
            AddStep("pause manager updates", () => trackManager.AllowUpdate = false);
            AddStep("stop any playing", () => trackManager.StopAnyPlaying(owner));
            AddAssert("current not changed", () => trackManager.CurrentTrack == track);
            AddStep("resume manager updates", () => trackManager.AllowUpdate = true);
            AddAssert("current is null", () => trackManager.CurrentTrack == null);
        }
        public void TestEnsureMutingCorrectly(bool stopAnyPlaying)
        {
            PreviewTrack   track = null;
            TestTrackOwner owner = null;

            AddStep("ensure volume not zero", () =>
            {
                if (audio.Volume.Value == 0)
                {
                    audio.Volume.Value = 1;
                }

                if (audio.VolumeTrack.Value == 0)
                {
                    audio.VolumeTrack.Value = 1;
                }
            });

            AddAssert("game not muted", () => audio.Tracks.AggregateVolume.Value != 0);

            AddStep("get track", () => Add(owner = new TestTrackOwner(track = getTrack())));
            AddUntilStep("wait loaded", () => track.IsLoaded);
            AddStep("start track", () => track.Start());
            AddAssert("game is muted", () => audio.Tracks.AggregateVolume.Value == 0);

            if (stopAnyPlaying)
            {
                AddStep("stop any playing", () => trackManager.StopAnyPlaying(owner));
            }
            else
            {
                AddStep("stop track", () => track.Stop());
            }

            AddAssert("game not muted", () => audio.Tracks.AggregateVolume.Value != 0);
        }