Ejemplo n.º 1
0
            protected void SetupDataSource(bool isFromSameWorkspace)
            {
                var project = Substitute.For <IThreadSafeProject>();

                project.Id.Returns(projectId);
                project.Name.Returns(ProjectName);
                project.WorkspaceId.Returns(isFromSameWorkspace ? WorkspaceId : otherWorkspaceId);

                var defaultWorkspace = Substitute.For <IThreadSafeWorkspace>();

                defaultWorkspace.Id.Returns(WorkspaceId);
                defaultWorkspace.Name.Returns(Guid.NewGuid().ToString());

                InteractorFactory
                .GetDefaultWorkspace()
                .Execute()
                .Returns(Observable.Return(defaultWorkspace));

                InteractorFactory
                .AreCustomColorsEnabledForWorkspace(WorkspaceId)
                .Execute()
                .Returns(Observable.Return(false));

                DataSource.Projects
                .GetAll(Arg.Any <ProjectPredicate>())
                .Returns(callInfo => Observable.Return(new[] { project })
                         .Select(projects => projects.Where <IThreadSafeProject>(callInfo.Arg <ProjectPredicate>())));
            }
Ejemplo n.º 2
0
            public TheDoneCommand()
            {
                InteractorFactory
                .AreCustomColorsEnabledForWorkspace(WorkspaceId)
                .Execute()
                .Returns(Observable.Return(false));

                InteractorFactory
                .AreCustomColorsEnabledForWorkspace(proWorkspaceId)
                .Execute()
                .Returns(Observable.Return(true));

                InteractorFactory
                .GetDefaultWorkspace()
                .Execute()
                .Returns(Observable.Return(Workspace));

                InteractorFactory
                .GetWorkspaceById(Arg.Any <long>())
                .Execute()
                .Returns(Observable.Return(Workspace));

                DataSource.Projects
                .Create(Arg.Any <CreateProjectDTO>())
                .Returns(Observable.Return(project));

                project.Id.Returns(projectId);
                Workspace.Id.Returns(proWorkspaceId);
            }
Ejemplo n.º 3
0
            protected void SetupDataSourceToReturnMultipleWorkspaces()
            {
                List <IThreadSafeWorkspace> workspaces = new List <IThreadSafeWorkspace>();
                List <IThreadSafeProject>   projects   = new List <IThreadSafeProject>();

                for (long workspaceId = 0; workspaceId < 2; workspaceId++)
                {
                    var workspace = Substitute.For <IThreadSafeWorkspace>();
                    workspace.Id.Returns(workspaceId);
                    workspace.Name.Returns(Guid.NewGuid().ToString());
                    workspaces.Add(workspace);

                    InteractorFactory
                    .GetWorkspaceById(workspaceId)
                    .Execute()
                    .Returns(Observable.Return(workspace));

                    for (long projectId = 0; projectId < 3; projectId++)
                    {
                        var project = Substitute.For <IThreadSafeProject>();
                        project.Id.Returns(10 * workspaceId + projectId);
                        project.Name.Returns($"Project-{workspaceId}-{projectId}");
                        project.WorkspaceId.Returns(workspaceId);
                        projects.Add(project);
                    }

                    var sameNameProject = Substitute.For <IThreadSafeProject>();
                    sameNameProject.Id.Returns(10 + workspaceId);
                    sameNameProject.Name.Returns("Project");
                    sameNameProject.WorkspaceId.Returns(workspaceId);
                    projects.Add(sameNameProject);
                }

                var defaultWorkspace = workspaces[0];

                InteractorFactory
                .GetDefaultWorkspace()
                .Execute()
                .Returns(Observable.Return(defaultWorkspace));

                InteractorFactory
                .AreCustomColorsEnabledForWorkspace(Arg.Any <long>())
                .Execute()
                .Returns(Observable.Return(false));

                DataSource.Projects
                .GetAll(Arg.Any <ProjectPredicate>())
                .Returns(callInfo =>
                         Observable.Return(projects)
                         .Select(p => p.Where <IThreadSafeProject>(callInfo.Arg <ProjectPredicate>())));

                View.Select(
                    Arg.Any <string>(),
                    Arg.Any <IEnumerable <SelectOption <IThreadSafeWorkspace> > >(),
                    Arg.Any <int>())
                .Returns(Observable.Return(new MockWorkspace {
                    Id = 1L
                }));
            }
Ejemplo n.º 4
0
            private void setupChangingWorkspaceScenario()
            {
                List <IThreadSafeWorkspace> workspaces = new List <IThreadSafeWorkspace>();
                List <IThreadSafeProject>   projects   = new List <IThreadSafeProject>();

                for (long workspaceId = 0; workspaceId < 2; workspaceId++)
                {
                    var workspace = Substitute.For <IThreadSafeWorkspace>();
                    workspace.Id.Returns(workspaceId);
                    workspace.Name.Returns(Guid.NewGuid().ToString());
                    workspaces.Add(workspace);

                    InteractorFactory
                    .GetWorkspaceById(workspaceId)
                    .Execute()
                    .Returns(Observable.Return(workspace));

                    for (long projectId = 0; projectId < 3; projectId++)
                    {
                        var project = Substitute.For <IThreadSafeProject>();
                        project.Id.Returns(10 * workspaceId + projectId);
                        project.Name.Returns($"Project-{workspaceId}-{projectId}");
                        project.WorkspaceId.Returns(workspaceId);
                        projects.Add(project);
                    }

                    var sameNameProject = Substitute.For <IThreadSafeProject>();
                    sameNameProject.Id.Returns(10 + workspaceId);
                    sameNameProject.Name.Returns("Project");
                    sameNameProject.WorkspaceId.Returns(workspaceId);
                    projects.Add(sameNameProject);
                }

                var defaultWorkspace = workspaces[0];

                InteractorFactory
                .GetDefaultWorkspace()
                .Execute()
                .Returns(Observable.Return(defaultWorkspace));

                InteractorFactory
                .AreCustomColorsEnabledForWorkspace(Arg.Any <long>())
                .Execute()
                .Returns(Observable.Return(false));

                DataSource.Projects
                .GetAll(Arg.Any <ProjectPredicate>())
                .Returns(callInfo => Observable.Return(projects)
                         .Select(p => p.Where <IThreadSafeProject>(callInfo.Arg <ProjectPredicate>())));
            }
Ejemplo n.º 5
0
            public async Task PicksADefaultColorIfTheSelectedColorIsCustomAndTheWorkspaceIsNotPro()
            {
                NavigationService
                .Navigate <SelectColorViewModel, ColorParameters, MvxColor>(Arg.Any <ColorParameters>())
                .Returns(Task.FromResult(MvxColors.Azure));
                NavigationService
                .Navigate <SelectWorkspaceViewModel, WorkspaceParameters, long>(Arg.Any <WorkspaceParameters>())
                .Returns(Task.FromResult(workspaceId));
                InteractorFactory.AreCustomColorsEnabledForWorkspace(workspaceId).Execute()
                .Returns(Observable.Return(false));
                await ViewModel.PickColorCommand.ExecuteAsync();

                await ViewModel.PickWorkspaceCommand.ExecuteAsync();

                ViewModel.Color.Should().NotBe(MvxColors.Azure);
            }
            public async Task ChecksIfTheWorkspaceHasTheProFeature(bool hasFeature)
            {
                const long workspaceId = 11;
                var        feature     = new MockWorkspaceFeature {
                    Enabled = hasFeature, FeatureId = WorkspaceFeatureId.Pro
                };
                var featureCollection = new MockWorkspaceFeatureCollection {
                    Features = new[] { feature }
                };

                Database.WorkspaceFeatures
                .GetById(workspaceId)
                .Returns(Observable.Return(featureCollection));

                var hasProFeature = await InteractorFactory.AreCustomColorsEnabledForWorkspace(workspaceId).Execute();

                hasProFeature.Should().Be(hasFeature);
            }
Ejemplo n.º 7
0
            public void PicksADefaultColorIfTheSelectedColorIsCustomAndTheWorkspaceIsNotPro()
            {
                NavigationService
                .Navigate <SelectColorViewModel, ColorParameters, MvxColor>(Arg.Any <ColorParameters>())
                .Returns(Task.FromResult(MvxColors.Azure));
                NavigationService
                .Navigate <SelectWorkspaceViewModel, long, long>(Arg.Any <long>())
                .Returns(Task.FromResult(workspaceId));
                InteractorFactory.AreCustomColorsEnabledForWorkspace(workspaceId).Execute()
                .Returns(Observable.Return(false));
                ViewModel.PickColor.Execute();
                TestScheduler.Start();

                ViewModel.PickWorkspace.Execute();
                TestScheduler.Start();

                ViewModel.Color.Should().NotBe(MvxColors.Azure);
            }
Ejemplo n.º 8
0
            public void PicksADefaultColorIfTheSelectedColorIsCustomAndTheWorkspaceIsNotPro()
            {
                var someColor = new Color(23, 45, 125);

                NavigationService
                .Navigate <SelectColorViewModel, ColorParameters, Color>(Arg.Any <ColorParameters>(), ViewModel.View)
                .Returns(Task.FromResult(someColor));
                View.Select(
                    Arg.Any <string>(),
                    Arg.Any <IEnumerable <SelectOption <IThreadSafeWorkspace> > >(),
                    Arg.Any <int>())
                .Returns(Observable.Return(new MockWorkspace {
                    Id = workspaceId
                }));
                InteractorFactory.AreCustomColorsEnabledForWorkspace(workspaceId).Execute()
                .Returns(Observable.Return(false));
                ViewModel.PickColor.Execute();
                TestScheduler.Start();

                ViewModel.PickWorkspace.Execute();
                TestScheduler.Start();

                ViewModel.Color.Should().NotBe(someColor);
            }