public async Task DoesNotReturnIfCustomColorsAreAllowed() { var initiallySelectedColor = Color.DefaultProjectColors.First(); var parameters = ColorParameters.Create(initiallySelectedColor, true); ViewModel.Prepare(parameters); var colorToSelect = ViewModel.SelectableColors.Last(); ViewModel.SelectColorCommand.Execute(colorToSelect); await NavigationService.DidNotReceive() .Close(Arg.Is(ViewModel), Arg.Any <MvxColor>()); }
public async Task ReturnsTheSelectedColorIfCustomColorsAreNotAllowed() { var initiallySelectedColor = Color.DefaultProjectColors.First(); var parameters = ColorParameters.Create(initiallySelectedColor, false); ViewModel.Prepare(parameters); var colorToSelect = ViewModel.SelectableColors.Last(); ViewModel.SelectColorCommand.Execute(colorToSelect); await NavigationService.Received() .Close(Arg.Is(ViewModel), Arg.Is <MvxColor>(c => c.ARGB == colorToSelect.Color.ARGB)); }
public void AddsFifteenItemsToTheListOfSelectableColorsIfTheUserIsPro() { var someColor = new Color(23, 45, 125); var parameters = ColorParameters.Create(someColor, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.Initialize(parameters); ViewModel.SelectableColors.Subscribe(observer); TestScheduler.AdvanceBy(EnoughTicksToEmitTheThrottledColor); observer.LastEmittedValue() .Should().HaveCount(15); }
private IObservable <Color> pickColor() { return(currentWorkspace.FirstAsync() .SelectMany(currentWorkspace => interactorFactory .AreCustomColorsEnabledForWorkspace(currentWorkspace.Id).Execute() .SelectMany(areCustomColorsEnabled => Color.FirstAsync() .SelectMany(currentColor => colorFromViewmodel(currentColor, areCustomColorsEnabled))))); IObservable <Color> colorFromViewmodel(Color currentColor, bool areCustomColorsEnabled) => Navigate <SelectColorViewModel, ColorParameters, Color>( ColorParameters.Create(currentColor, areCustomColorsEnabled)) .ToObservable(); }
public void SelectsThePassedColorIfThePassedColorIsNotPartOfTheDefaultColorsAndWorkspaceIsPro() { var parameters = ColorParameters.Create(MvxColors.Azure, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); observer.Messages .Select(m => m.Value.Value) .Last() .Single(c => c.Selected).Color.ARGB.Should().Be(MvxColors.Azure.ARGB); }
public async Task ReturnsTheSelectedColor() { var parameters = ColorParameters.Create(MvxColors.Azure, true); ViewModel.Prepare(parameters); var expected = Color.DefaultProjectColors.First(); ViewModel.SelectColor.Execute(expected); ViewModel.Save.Execute(); TestScheduler.Start(); await NavigationService.Received() .Close(Arg.Is(ViewModel), Arg.Is <MvxColor>(c => c.ARGB == expected.ARGB)); }
public void AddsFifteenItemsToTheListOfSelectableColorsIfTheUserIsPro() { var parameters = ColorParameters.Create(MvxColors.Azure, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); observer.Messages .Select(m => m.Value.Value) .Last() .Should().HaveCount(15); }
public async Task ReturnsTheSelectedColor() { var someColor = new Color(23, 45, 125); var parameters = ColorParameters.Create(someColor, true); await ViewModel.Initialize(parameters); var expected = Colors.DefaultProjectColors.First(); ViewModel.SelectColor.Execute(expected); ViewModel.Save.Execute(); TestScheduler.Start(); (await ViewModel.Result).Should().Be(expected); }
public void SelectsThePassedColorIfThePassedColorIsNotPartOfTheDefaultColorsAndWorkspaceIsPro() { var someColor = new Color(23, 45, 125); var parameters = ColorParameters.Create(someColor, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Initialize(parameters); observer.Messages .Select(m => m.Value.Value) .Last() .Single(c => c.Selected).Color.Should().Be(someColor); }
public void SelectsTheColorPassedAsTheParameter() { var passedColor = Color.DefaultProjectColors.Skip(3).First(); var parameters = ColorParameters.Create(passedColor, false); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); observer.Messages .Select(m => m.Value.Value) .Last() .Single(c => c.Selected).Color.ARGB.Should().Be(passedColor.ARGB); }
public async Task ReturnsTheSelectedColor() { var someColor = new Color(23, 45, 125); var parameters = ColorParameters.Create(someColor, true); ViewModel.Prepare(parameters); var expected = Colors.DefaultProjectColors.First(); ViewModel.SelectColor.Execute(expected); ViewModel.Save.Execute(); TestScheduler.Start(); await NavigationService.Received() .Close(Arg.Is(ViewModel), Arg.Is <Color>(c => c == expected)); }
public void AddsFourteenItemsToTheListOfSelectableColorsIfTheUserIsNotPro() { var someColor = new Color(23, 45, 125); var parameters = ColorParameters.Create(someColor, false); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); observer.Messages .Select(m => m.Value.Value) .Last() .Should().HaveCount(14); }
public async Task ReturnsTheSelectedColorIfCustomColorsAreNotAllowed() { var initiallySelectedColor = Colors.DefaultProjectColors.First(); var colorToSelect = Colors.DefaultProjectColors.Last(); var parameters = ColorParameters.Create(initiallySelectedColor, false); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); await ViewModel.Initialize(parameters); ViewModel.SelectColor.Execute(colorToSelect); (await ViewModel.Result).Should().Be(colorToSelect); }
public async Task DoesNotReturnIfCustomColorsAreAllowed() { var initiallySelectedColor = Color.DefaultProjectColors.First(); var colorToSelect = Color.DefaultProjectColors.Last(); var parameters = ColorParameters.Create(initiallySelectedColor, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); ViewModel.SelectColor.Execute(colorToSelect); await NavigationService.DidNotReceive() .Close(Arg.Is(ViewModel), Arg.Any <MvxColor>()); }
public async Task ReturnsTheSelectedColorIfCustomColorsAreNotAllowed() { var initiallySelectedColor = Color.DefaultProjectColors.First(); var colorToSelect = Color.DefaultProjectColors.Last(); var parameters = ColorParameters.Create(initiallySelectedColor, false); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); ViewModel.SelectColor.Execute(colorToSelect); await NavigationService.Received() .Close(Arg.Is(ViewModel), Arg.Is <MvxColor>(c => c.ARGB == colorToSelect.ARGB)); }
public void ChangesTheSelectedColor() { var initiallySelectedColor = Color.DefaultProjectColors.First(); var colorToSelect = Color.DefaultProjectColors.Last(); var parameters = ColorParameters.Create(initiallySelectedColor, true); var observer = TestScheduler.CreateObserver <IEnumerable <SelectableColorViewModel> >(); ViewModel.SelectableColors.Subscribe(observer); ViewModel.Prepare(parameters); ViewModel.SelectColor.Execute(colorToSelect); observer.Messages .Select(m => m.Value.Value) .Last() .Single(c => c.Selected).Color.ARGB.Should().Be(colorToSelect.ARGB); }