Exemplo n.º 1
0
        public void TestDifficultyIconSelecting()
        {
            addRulesetImportStep(0);
            createSongSelect();

            DrawableCarouselBeatmapSet set = null;

            AddStep("Find the DrawableCarouselBeatmapSet", () =>
            {
                set = songSelect.Carousel.ChildrenOfType <DrawableCarouselBeatmapSet>().First();
            });

            FilterableDifficultyIcon difficultyIcon = null;

            AddUntilStep("Find an icon", () =>
            {
                return((difficultyIcon = set.ChildrenOfType <FilterableDifficultyIcon>()
                                         .FirstOrDefault(icon => getDifficultyIconIndex(set, icon) != getCurrentBeatmapIndex())) != null);
            });

            AddStep("Click on a difficulty", () =>
            {
                InputManager.MoveMouseTo(difficultyIcon);

                InputManager.Click(MouseButton.Left);
            });

            AddAssert("Selected beatmap correct", () => getCurrentBeatmapIndex() == getDifficultyIconIndex(set, difficultyIcon));

            double?maxBPM = null;

            AddStep("Filter some difficulties", () => songSelect.Carousel.Filter(new FilterCriteria
            {
                BPM = new FilterCriteria.OptionalRange <double>
                {
                    Min = maxBPM = songSelect.Carousel.SelectedBeatmapSet.MaxBPM,
                    IsLowerInclusive = true
                }
            }));

            BeatmapInfo filteredBeatmap           = null;
            FilterableDifficultyIcon filteredIcon = null;

            AddStep("Get filtered icon", () =>
            {
                var selectedSet          = songSelect.Carousel.SelectedBeatmapSet;
                filteredBeatmap          = selectedSet.Beatmaps.First(b => b.BPM < maxBPM);
                int filteredBeatmapIndex = getBeatmapIndex(selectedSet, filteredBeatmap);
                filteredIcon             = set.ChildrenOfType <FilterableDifficultyIcon>().ElementAt(filteredBeatmapIndex);
            });

            AddStep("Click on a filtered difficulty", () =>
            {
                InputManager.MoveMouseTo(filteredIcon);

                InputManager.Click(MouseButton.Left);
            });

            AddAssert("Selected beatmap correct", () => songSelect.Carousel.SelectedBeatmapInfo.Equals(filteredBeatmap));
        }
Exemplo n.º 2
0
        public void TestDifficultyIconSelectingForDifferentRuleset()
        {
            changeRuleset(0);

            createSongSelect();

            AddStep("import multi-ruleset map", () =>
            {
                var usableRulesets = rulesets.AvailableRulesets.Where(r => r.ID != 2).ToArray();
                manager.Import(createTestBeatmapSet(usableRulesets)).Wait();
            });

            DrawableCarouselBeatmapSet set = null;

            AddUntilStep("Find the DrawableCarouselBeatmapSet", () =>
            {
                set = songSelect.Carousel.ChildrenOfType <DrawableCarouselBeatmapSet>().FirstOrDefault();
                return(set != null);
            });

            FilterableDifficultyIcon difficultyIcon = null;

            AddUntilStep("Find an icon for different ruleset", () =>
            {
                difficultyIcon = set.ChildrenOfType <FilterableDifficultyIcon>()
                                 .FirstOrDefault(icon => icon.Item.BeatmapInfo.Ruleset.ID == 3);
                return(difficultyIcon != null);
            });

            AddAssert("Check ruleset is osu!", () => Ruleset.Value.ID == 0);

            int previousSetID = 0;

            AddStep("record set ID", () => previousSetID = Beatmap.Value.BeatmapSetInfo.ID);

            AddStep("Click on a difficulty", () =>
            {
                InputManager.MoveMouseTo(difficultyIcon);

                InputManager.Click(MouseButton.Left);
            });

            AddUntilStep("Check ruleset changed to mania", () => Ruleset.Value.ID == 3);

            AddAssert("Selected beatmap still same set", () => songSelect.Carousel.SelectedBeatmapInfo.BeatmapSet.ID == previousSetID);
            AddAssert("Selected beatmap is mania", () => Beatmap.Value.BeatmapInfo.Ruleset.ID == 3);
        }
Exemplo n.º 3
0
 private int getDifficultyIconIndex(DrawableCarouselBeatmapSet set, FilterableDifficultyIcon icon)
 {
     return(set.ChildrenOfType <FilterableDifficultyIcon>().ToList().FindIndex(i => i == icon));
 }