public void TestSettingsNotCrossPolluting() { Bindable <IReadOnlyList <Mod> > selectedMods2 = null; ModSelectScreen modSelectScreen2 = null; createScreen(); AddStep("select diff adjust", () => SelectedMods.Value = new Mod[] { new OsuModDifficultyAdjust() }); AddStep("set setting", () => modSelectScreen.ChildrenOfType <SettingsSlider <float> >().First().Current.Value = 8); AddAssert("ensure setting is propagated", () => SelectedMods.Value.OfType <OsuModDifficultyAdjust>().Single().CircleSize.Value == 8); AddStep("create second bindable", () => selectedMods2 = new Bindable <IReadOnlyList <Mod> >(new Mod[] { new OsuModDifficultyAdjust() })); AddStep("create second overlay", () => { Add(modSelectScreen2 = new UserModSelectScreen().With(d => { d.Origin = Anchor.TopCentre; d.Anchor = Anchor.TopCentre; d.SelectedMods.BindTarget = selectedMods2; })); }); AddStep("show", () => modSelectScreen2.Show()); AddAssert("ensure first is unchanged", () => SelectedMods.Value.OfType <OsuModDifficultyAdjust>().Single().CircleSize.Value == 8); AddAssert("ensure second is default", () => selectedMods2.Value.OfType <OsuModDifficultyAdjust>().Single().CircleSize.Value == null); }
private void createScreen() { AddStep("create screen", () => Child = modSelectScreen = new UserModSelectScreen { RelativeSizeAxes = Axes.Both, State = { Value = Visibility.Visible }, SelectedMods = { BindTarget = SelectedMods } }); waitForColumnLoad(); }