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>()))); }
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); }
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 })); }
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>()))); }
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); }
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); }
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); }