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);
            }
Ejemplo n.º 4
0
        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);
            }
Ejemplo n.º 8
0
            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);
            }
Ejemplo n.º 9
0
            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);
            }
Ejemplo n.º 11
0
            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));
            }
Ejemplo n.º 12
0
            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);
            }
Ejemplo n.º 13
0
            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);
            }