public async Task CreatesNoopRunnerWhenNoPoliciesFound() { //arrange var repositoryId = "repo-id"; var extensionId = "ext-id"; var publisherId = "pub-id"; var organization = "org"; ServiceProvider serviceProvider = CreateServiceProvider(extensionId, publisherId); HttpClient httpClient = CreateHttpMockWith404Response(repositoryId, extensionId, publisherId, organization); var settings = serviceProvider.GetService <IOptionsMonitor <ExtensionSettings> >(); var azDoClient = new AzureDevOpsClient(httpClient, "token", settings); var subject = new MergePolicyRunnerFactory( serviceProvider, serviceProvider.GetService <ILogger <MergePolicyRunnerFactory> >() ); var context = new MergePolicyRunnerFactoryContext(azDoClient, repositoryId, organization); //act var result = await subject.CreateAsync(context); //assert Assert.IsType <NoopMergePolicyRunner>(result); }
public async Task CreatesNewRunnerWhenConfigurationChanges() { //arrange var repositoryId = "repo-id"; var extensionId = "ext-id"; var publisherId = "pub-id"; var organization = "org"; ServiceProvider serviceProvider = CreateServiceProvider(extensionId, publisherId); HttpClient httpClient = CreateHttpMock(repositoryId, extensionId, publisherId, organization); var settings = serviceProvider.GetService <IOptionsMonitor <ExtensionSettings> >(); var azDoClient = new AzureDevOpsClient(httpClient, "token", settings); var subject = new MergePolicyRunnerFactory( serviceProvider, serviceProvider.GetService <ILogger <MergePolicyRunnerFactory> >() ); var context = new MergePolicyRunnerFactoryContext(azDoClient, repositoryId, organization); //act var result1 = await subject.CreateAsync(context); subject.Clear(new MergePolicyRunnerFactoryContext(context.RepositoryId, context.Organization)); var result2 = await subject.CreateAsync(context); //assert Assert.IsType <MergePolicyRunner>(result1); Assert.IsType <MergePolicyRunner>(result2); Assert.NotSame(result1, result2); }