public async Task GetChatResponseAsyncReturnsApiResponse() { var chatResponse = new ChatResponse(); chatResponse.response = new List <string>(); chatResponse.response.Add("hello world"); chatResponse.confidence = .42; var handlerMock = new Mock <HttpMessageHandler>(MockBehavior.Strict); handlerMock.Protected().Setup <Task <HttpResponseMessage> >( "SendAsync", ItExpr.IsAny <HttpRequestMessage>(), ItExpr.IsAny <CancellationToken>() ).ReturnsAsync(new HttpResponseMessage() { StatusCode = HttpStatusCode.OK, Content = new StringContent(JsonConvert.SerializeObject(chatResponse)), }).Verifiable(); var httpClient = new HttpClient(handlerMock.Object) { BaseAddress = new Uri("http://test.com/"), }; var botConfiguration = new BotConfiguration(); var service = new ChatResponseService(httpClient, botConfiguration); var result = await service.GetChatResponseAsync("test"); Assert.Equal(chatResponse.response, result.response); Assert.Equal(chatResponse.confidence, result.confidence); }
static void Main(string[] args) { Startup startup = new Startup(); var botConfiguration = startup.Configure(); channelbotConfiguration = new ChannelConfigurationService(botConfiguration); botConfiguration.Channels = channelbotConfiguration.LoadChannels(); var client = new HttpClient(); var apiUtilityService = new ApiUtilityService(botConfiguration); chatResponseService = new ChatResponseService(client, apiUtilityService, botConfiguration); chatUpdateService = new ChatUpdateService(client, apiUtilityService, botConfiguration); userDetailService = new UserDetailService(client, botConfiguration); reactionService = new ReactionService(client, apiUtilityService, botConfiguration); reactionAddService = new ReactionAddService(client, apiUtilityService, botConfiguration); discord = new DiscordClient(new DiscordConfiguration { Token = botConfiguration.Token, TokenType = TokenType.Bot }); botUtilityService = new BotUtilityService(discord, botConfiguration); commandService = new CommandService(botConfiguration, channelbotConfiguration); botReactionService = new BotReactionService(botConfiguration, new EmojiService(discord)); requiredPropertyResponseService = new RequiredPropertyResponseService(discord, botUtilityService); MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult(); }