/
ContinuousJobsManagerFacts.cs
40 lines (37 loc) · 1.4 KB
/
ContinuousJobsManagerFacts.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using Kudu.Core.Jobs;
using Kudu.Core.Tracing;
using Kudu.TestHarness;
using Moq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace Kudu.Core.Test.Jobs
{
public class ContinuousJobsManagerFacts
{
[Theory]
[InlineData(4567, "path/to/webjob/function", @"{""key"": ""value""}")]
public void CloneRequestTestCase(int port, string path, string content)
{
// Arrange
var headers = new Dictionary<string, string> { { "key", "value" }, { "HOST", "example.com" } };
var request = new HttpRequestMessage(HttpMethod.Put, new Uri("https://kudu.com/" + path));
request.Content = new StringContent(content);
foreach (var pair in headers)
request.Headers.Add(pair.Key, pair.Value);
// Act
var clone = ContinuousJobsManager.GetForwardRequest(port, path, request);
// Assert
Assert.Equal(request.Method, clone.Method);
Assert.Equal(string.Format("http://127.0.0.1:{0}/{1}", port, path), clone.RequestUri.AbsoluteUri);
Assert.Equal(content, clone.Content.ReadAsStringAsync().Result);
Assert.Equal(1, clone.Headers.Count());
Assert.Equal("value", clone.Headers.First().Value.First());
}
}
}