public override void Configure(IFunctionsHostBuilder builder) { var keyVaultName = Environment.GetEnvironmentVariable("KeyVaultName"); var configService = new ConfigService(keyVaultName); configService.LoadConfigurationAsync().Wait(); var tableStorageAccount = CloudStorageAccount.Parse(configService.TableStorageAccountConnectionString); var tableClient = tableStorageAccount.CreateCloudTableClient(); var jobOutputStatusTable = tableClient.GetTableReference(configService.JobOutputStatusTableName); jobOutputStatusTable.CreateIfNotExists(); var jobOutputStatusTableStorageService = new TableStorageService(jobOutputStatusTable); var provisioningRequestQueue = new QueueClient(configService.StorageAccountConnectionString, configService.ProvisioningRequestQueueName); provisioningRequestQueue.CreateIfNotExists(); var jobOutputStatusStorageService = new JobOutputStatusStorageService(jobOutputStatusTableStorageService); var provisioningRequestStorageService = new ProvisioningRequestStorageService(provisioningRequestQueue); var jobOutputStatusService = new JobOutputStatusService(jobOutputStatusStorageService, provisioningRequestStorageService); var eventGridService = new EventGridService(); builder.Services.AddSingleton <IJobOutputStatusService>(jobOutputStatusService); builder.Services.AddSingleton <IEventGridService>(eventGridService); }
public void EventGridServiceIsValidEventGridPublishClientOptionsRaisesExceptionWhenNullEventGridPublishClientOptions() { // arrange // act var exceptionResult = Assert.Throws <ArgumentNullException>(() => EventGridService.IsValidEventGridPublishClientOptions(fakeLogger, null)); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened(); Assert.Equal("Value cannot be null. (Parameter 'eventGridPublishClientOptions')", exceptionResult.Message); }
public void EventGridServiceIsValidEventGridPublishClientOptionsReturnsSuccess() { // arrange const bool expectedResult = true; // act var result = EventGridService.IsValidEventGridPublishClientOptions(fakeLogger, eventGridPublishClientOptions); // assert Assert.Equal(expectedResult, result); }
public async Task EventGridServiceSendEventAsyncReturnsSuccess() { // arrange var contentPageModel = BuildValidContentPageModel(); var eventGridService = new EventGridService(fakeLogger, fakeEventGridClientService, eventGridPublishClientOptions); // act await eventGridService.SendEventAsync(WebhookCacheOperation.CreateOrUpdate, contentPageModel).ConfigureAwait(false); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustHaveHappenedOnceExactly(); }
public void EventGridServiceContainsDifferencesReturnsNoDifferences() { // arrange const bool expectedResult = false; var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); // act var result = EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel); // assert Assert.Equal(expectedResult, result); }
public void EventGridServiceIsValidEventGridPublishClientOptionsReturnsFalseWhenNullApiEndpoint() { // arrange const bool expectedResult = false; eventGridPublishClientOptions.ApiEndpoint = null; // act var result = EventGridService.IsValidEventGridPublishClientOptions(fakeLogger, eventGridPublishClientOptions); // assert Assert.Equal(expectedResult, result); }
public void EventGridServiceIsValidEventGridPublishClientOptionsReturnsFalseWhenNullSubjectPrefix() { // arrange const bool expectedResult = false; eventGridPublishClientOptions.SubjectPrefix = string.Empty; // act var result = EventGridService.IsValidEventGridPublishClientOptions(fakeLogger, eventGridPublishClientOptions); // assert Assert.Equal(expectedResult, result); }
public async Task EventGridServiceCompareAndSendEventAsyncReturnsSuccessForNoDifferences() { // arrange var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); var eventGridService = new EventGridService(fakeLogger, fakeEventGridClientService, eventGridPublishClientOptions); // act await eventGridService.CompareAndSendEventAsync(existingContentPageModel, updatedContentPageModel).ConfigureAwait(false); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened(); }
public async Task EventGridServiceSendEventAsyncRaisesExceptionWhenNullContentPageModel() { // arrange ContentPageModel?contentPageModel = null; var eventGridService = new EventGridService(fakeLogger, fakeEventGridClientService, eventGridPublishClientOptions); // act var exceptionResult = await Assert.ThrowsAsync <ArgumentNullException>(async() => await eventGridService.SendEventAsync(WebhookCacheOperation.CreateOrUpdate, contentPageModel).ConfigureAwait(false)).ConfigureAwait(false); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened(); Assert.Equal("Value cannot be null. (Parameter 'updatedContentPageModel')", exceptionResult.Message); }
public void EventGridServiceContainsDifferencesRaisesExceptionWhenNullUpdatedContantPageModel() { // arrange var existingContentPageModel = BuildValidContentPageModel(); ContentPageModel?updatedContentPageModel = null; // act var exceptionResult = Assert.Throws <ArgumentNullException>(() => EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel)); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened(); Assert.Equal("Value cannot be null. (Parameter 'updatedContentPageModel')", exceptionResult.Message); }
public async Task EventGridServiceSendEventAsyncRaisesExceptionWhenInvalidEventGridPublishClientOptions() { // arrange var contentPageModel = BuildValidContentPageModel(); var eventGridService = new EventGridService(fakeLogger, fakeEventGridClientService, eventGridPublishClientOptions); eventGridPublishClientOptions.TopicEndpoint = string.Empty; // act await eventGridService.SendEventAsync(WebhookCacheOperation.CreateOrUpdate, contentPageModel).ConfigureAwait(false); // assert A.CallTo(() => fakeEventGridClientService.SendEventAsync(A <List <EventGridEvent> > .Ignored, A <string> .Ignored, A <string> .Ignored, A <string> .Ignored)).MustNotHaveHappened(); }
public void EventGridServiceContainsDifferencesReturnsDifferencesForIsDefaultForPageLocation() { // arrange const bool expectedResult = true; var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); updatedContentPageModel.IsDefaultForPageLocation = !existingContentPageModel.IsDefaultForPageLocation; // act var result = EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel); // assert Assert.Equal(expectedResult, result); }
public void EventGridServiceContainsDifferencesReturnsDifferencesForNullRedirectLocations2() { // arrange const bool expectedResult = true; var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); existingContentPageModel.RedirectLocations = null; // act var result = EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel); // assert Assert.Equal(expectedResult, result); }
public void EventGridServiceContainsDifferencesReturnsDifferencesForDifferentCanonicalName() { // arrange const bool expectedResult = true; var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); updatedContentPageModel.CanonicalName = existingContentPageModel.CanonicalName + ".with-a-difference"; // act var result = EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel); // assert Assert.Equal(expectedResult, result); }
public void EventGridServiceContainsDifferencesReturnsDifferencesForDifferentRedirectLocations() { // arrange const bool expectedResult = true; var existingContentPageModel = BuildValidContentPageModel(); var updatedContentPageModel = BuildValidContentPageModel(); updatedContentPageModel.RedirectLocations = new List <string> { "/location-3", "/location-4" }; // act var result = EventGridService.ContainsDifferences(existingContentPageModel, updatedContentPageModel); // assert Assert.Equal(expectedResult, result); }