Beispiel #1
0
            public async Task ChecksIfTheProjectsWorkspaceHasTheProFeature(bool hasFeature)
            {
                const long projectId   = 10;
                const long workspaceId = 11;
                var        project     = new MockProject {
                    WorkspaceId = workspaceId
                };
                var feature = new MockWorkspaceFeature {
                    Enabled = hasFeature, FeatureId = WorkspaceFeatureId.Pro
                };
                var featureCollection = new MockWorkspaceFeatureCollection {
                    Features = new[] { feature }
                };

                InteractorFactory.GetWorkspaceFeaturesById(workspaceId)
                .Execute()
                .Returns(Observable.Return(featureCollection));
                InteractorFactory.GetProjectById(Arg.Is(projectId))
                .Execute()
                .Returns(Observable.Return(project));

                var hasProFeature = await InteractorFactory.IsBillableAvailableForProject(projectId).Execute();

                hasProFeature.Should().Be(hasFeature);
            }
            public async Task ReturnsNullIfTheWorkspaceIsNotPro(bool billableByDefault)
            {
                const long workspaceId = 11;
                var        workspace   = new MockWorkspace {
                    ProjectsBillableByDefault = billableByDefault
                };
                var feature = new MockWorkspaceFeature {
                    Enabled = false, FeatureId = WorkspaceFeatureId.Pro
                };
                var featureCollection = new MockWorkspaceFeatureCollection {
                    Features = new[] { feature }
                };

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

                var projectsAreBillableByDefault =
                    await InteractorFactory.AreProjectsBillableByDefault(workspaceId).Execute();

                projectsAreBillableByDefault.Should().Be(null);
            }
            public async Task ChecksIfTheWorkspacesBillableByDefaultPropertyIfTheWorkspaceIsPro(bool billableByDefault)
            {
                const long workspaceId = 11;
                var        workspace   = new MockWorkspace {
                    ProjectsBillableByDefault = billableByDefault
                };
                var feature = new MockWorkspaceFeature {
                    Enabled = true, FeatureId = WorkspaceFeatureId.Pro
                };
                var featureCollection = new MockWorkspaceFeatureCollection {
                    Features = new[] { feature }
                };

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

                var projectsAreBillableByDefault =
                    await InteractorFactory.AreProjectsBillableByDefault(workspaceId).Execute();

                projectsAreBillableByDefault.Should().Be(billableByDefault);
            }
            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);
            }