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