private async Task DeactivateProjectAsync(AccountConfiguration configuration, string projectId, bool force = false) { if (!configuration.IsActivated(projectId) && !force) { return; } if (configuration.HasActiveRepositories(projectId) && !force) { return; } var serviceFactory = _connectionFactory.CreateFactory(new Uri(configuration.BaseUrl), new VssBasicCredential(string.Empty, configuration.PersonalAccessToken)); var client = await serviceFactory.GetClientAsync <ServiceHooksPublisherHttpClient>(); var serviceHookIds = configuration.GetServiceHookIds(projectId); configuration.Deactivate(projectId); foreach (var serviceHookId in serviceHookIds) { try { await client.DeleteSubscriptionAsync(new Guid(serviceHookId)); } catch { // TODO: log? } } await _configurationRepository.UpdateAsync(configuration); }
public void DeactivateProject_NotActivated_ShouldReturnNotActivated() { var projectId = Guid.NewGuid().ToString(); var accountConfiguration = new AccountConfiguration(); accountConfiguration.Deactivate(projectId); accountConfiguration.IsActivated(projectId).Should().BeFalse(); }
public void HasActivateRepositories_StillOneActive_ShouldReturnTrue() { var projectId = Guid.NewGuid().ToString(); var repositoryId = Guid.NewGuid().ToString(); var statusPolicyName = "TestPolic"; var accountConfiguration = new AccountConfiguration(); accountConfiguration.Activate(projectId, repositoryId, statusPolicyName); accountConfiguration.Activate(projectId, repositoryId, statusPolicyName + "2"); accountConfiguration.Deactivate(projectId, repositoryId, statusPolicyName); accountConfiguration.HasActiveRepositories(projectId).Should().BeTrue(); }
public void DeactivateStatusPolicy_Activated_ShouldReturnNotActivated() { var projectId = Guid.NewGuid().ToString(); var repositoryId = Guid.NewGuid().ToString(); var statusPolicyName = "TestPolic"; var accountConfiguration = new AccountConfiguration(); accountConfiguration.Activate(projectId, repositoryId, statusPolicyName); accountConfiguration.Deactivate(projectId, repositoryId, statusPolicyName); accountConfiguration.IsStatusPolicyEnabled(projectId, repositoryId, statusPolicyName).Should().BeFalse(); accountConfiguration.HasActiveRepositories(projectId).Should().BeFalse(); }
public void DeactivateProject_Activated_ShouldDeactivateProjectAndNotReturnsServiceHookIds() { var projectId = Guid.NewGuid().ToString(); var serviceHookIds = new[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }; var accountConfiguration = new AccountConfiguration(); accountConfiguration.Activate(projectId, new Guid().ToString(), serviceHookIds); accountConfiguration.Deactivate(projectId); accountConfiguration.IsActivated(projectId).Should().BeFalse(); accountConfiguration.GetServiceHookIds(projectId).Should().BeEmpty(); }