public async Task PostBroadcasterConfigAsync() { const int channelId = 123; const string broadcaster = "broadcaster"; _Log.Setup(s => s.LogInformation($"Checking that broadcaster '{broadcaster}' exists.")); const string endpoint = "https://twitch.tv/users"; const string clientId = "kdrgvhidhfskljecsemphgdhdfgfls"; const string accept = "application/json"; const string displayName = "BrOaDcAsTeR"; var getUserResponse = new GetUsersResponse { Users = new List <User> { new User { DisplayName = displayName } } }; _TwitchWrapper.Setup(s => s.GetUsers(endpoint, clientId, accept, broadcaster)).ReturnsAsync(getUserResponse); _Log.Setup(s => s.LogInformation($"Found broadcaster '{broadcaster}' with display name '{displayName}'.")); _Log.Setup(s => s.LogInformation($"Posting broadcaster config for channel '{channelId}' broadcaster '{displayName}'.")); var inputContainer = new BroadcasterConfigContainer(); var outputContainer = new ChannelConfigContainer(); _Context.Setup(s => s.SetBroadcasterConfigAsync(channelId, displayName, inputContainer)).ReturnsAsync(outputContainer); _Log.Setup(s => s.LogInformation($"Posted broadcaster config for channel '{channelId}' broadcaster '{displayName}'.")); var result = await _Helper.PostBroadcasterConfigAsync(endpoint, clientId, accept, channelId, broadcaster, inputContainer); _Log.VerifyAll(); _TwitchWrapper.VerifyAll(); _Context.VerifyAll(); Assert.That(result.ErrorMessage, Is.Null.Or.Empty); Assert.That(result.ChannelConfigContainer, Is.EqualTo(outputContainer)); }
public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = "channels/{channelid:decimal}/broadcasters/{broadcaster}")] HttpRequest req, decimal channelId, string broadcaster, ILogger log) { var getUsersEndpoint = Environment.GetEnvironmentVariable("TwitchGetUsersEndpoint"); var clientId = Environment.GetEnvironmentVariable("TwitchClientId"); var accept = Environment.GetEnvironmentVariable("TwitchAcceptHeaderValue"); var connectionString = Environment.GetEnvironmentVariable("TopTwitchClipBotConnectionString"); var container = await req.Body.ReadToEndAsync <BroadcasterConfigContainer>(); var logWrapper = new LoggerWrapper(log); PostBroadcasterConfigResponse result; using (var twitchWrapper = new TwitchWrapper()) using (var context = new TopTwitchClipBotContext(connectionString)) { var helper = new PostBroadcasterConfigHelper(logWrapper, context, twitchWrapper); result = await helper.PostBroadcasterConfigAsync(getUsersEndpoint, clientId, accept, channelId, broadcaster, container); } return(new OkObjectResult(result)); }