public HttpClientProxy(HttpClient httpClient, IOptions <WebexTeamsSettings> settings) { _httpClient = httpClient; _settings = settings.Value; _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _settings.BotAuthToken); }
public WebexTeamsWebhookHandler(IWebexTeamsApiService apiService, IOptions <WebexTeamsSettings> settings, IWebexTeamsMapper mapper, IWebexTeamsMessageParser messageParser) { _apiService = apiService; _settings = settings.Value; _mapper = mapper; _messageParser = messageParser; }
public static IServiceCollection ConfigureWebexTeamsBot(this IServiceCollection services, WebexTeamsSettings settings) { var options = new OptionsWrapper <WebexTeamsSettings>(settings); services.AddSingleton <IOptions <WebexTeamsSettings> >(options); services.ConfigureCommonServices(); return(services); }
internal void TestSuccessfullyRegisterHooks(WebexTeamsSettings settings, Models.Webhook[] existingHooks, CreateWebhookRequest[] mappedHooks) { this.Given(x => GivenWebexTeamsSettings(settings)) .And(x => GivenExistingWebhooks(existingHooks)) .When(x => WhenRegisteringWebhooks()) .Then(x => ThenItShouldDeleteExistingWebhooks(existingHooks)) .And(x => ThenItShouldRegisterTheNewWebhooks(mappedHooks)) .BDDfy(); }
public HttpClientProxyTests() { _messageHandler = new MockHttpMessageHandler(); _httpClient = new HttpClient(_messageHandler); var settingsContainer = Substitute.For <IOptions <WebexTeamsSettings> >(); var settings = new WebexTeamsSettings { BotAuthToken = "botAuthToken", WebexTeamsApiUrl = "https://localhost:1234" }; settingsContainer.Value.Returns(settings); _subject = new HttpClientProxy(_httpClient, settingsContainer); }
public WebexTeamsWebhookHandlerTest() { _apiService = Substitute.For <IWebexTeamsApiService>(); _settings = new WebexTeamsSettings(); _messageParser = Substitute.For <IWebexTeamsMessageParser>(); var options = Substitute.For <IOptions <WebexTeamsSettings> >(); options.Value.Returns(_settings); var mapper = new MapperConfiguration(c => { c.AddProfile <CommonMappers>(); c.AddProfile <WebhookMapper>(); c.AddProfile <PersonMapper>(); }).CreateMapper(); _subject = new WebexTeamsWebhookHandler(_apiService, options, new WebexTeamsMapper(mapper), _messageParser); }
public static WebexTeamsChatHelper CreateWebexTeamsChatHelper(WebexTeamsSettings settings) { var httpClient = new HttpClient { BaseAddress = new Uri("https://api.ciscospark.com/v1") }; var httpClientProxy = new HttpClientProxy(httpClient, new OptionsWrapper <WebexTeamsSettings>(settings)); var apiService = new WebexTeamsApiService(httpClientProxy); var mapper = WebexTeamsMapperFactory.CreateMapper(); var messageParser = new WebexTeamsMessageParser(mapper); var messageHandler = new WebexTeamsMessageHandler(apiService, messageParser, mapper); var personHandler = new WebexTeamsPersonHandler(apiService, mapper); var roomHandler = new WebexTeamsRoomHandler(apiService, mapper); var webhooks = new WebexTeamsWebhookHandler(apiService, new OptionsWrapper <WebexTeamsSettings>(settings), mapper, messageParser); return(new WebexTeamsChatHelper(messageHandler, personHandler, roomHandler, webhooks)); }
private void GivenWebexTeamsSettings(WebexTeamsSettings settings) { _settings.BotAuthToken = settings.BotAuthToken; _settings.WebexTeamsApiUrl = settings.WebexTeamsApiUrl; _settings.Webhooks = settings.Webhooks; }