identified tests are failing because sometimes more than one log entry in raft, this is deffo wrong, also made int tests not use cache manager

This commit is contained in:
Tom Pallister 2018-05-07 09:00:41 +01:00
parent 54c7464919
commit 66a1bfc257
3 changed files with 39 additions and 45 deletions

View File

@ -617,17 +617,7 @@ namespace Ocelot.IntegrationTests
}) })
.ConfigureServices(x => .ConfigureServices(x =>
{ {
Action<ConfigurationBuilderCachePart> settings = (s) =>
{
s.WithMicrosoftLogging(log =>
{
log.AddConsole(LogLevel.Debug);
})
.WithDictionaryHandle();
};
x.AddOcelot() x.AddOcelot()
.AddCacheManager(settings)
.AddAdministration("/administration", "secret"); .AddAdministration("/administration", "secret");
}) })
.Configure(app => .Configure(app =>

View File

@ -23,6 +23,8 @@ using Ocelot.Middleware;
namespace Ocelot.IntegrationTests namespace Ocelot.IntegrationTests
{ {
using Xunit.Abstractions;
public class RaftTests : IDisposable public class RaftTests : IDisposable
{ {
private readonly List<IWebHost> _builders; private readonly List<IWebHost> _builders;
@ -34,9 +36,11 @@ namespace Ocelot.IntegrationTests
private BearerToken _token; private BearerToken _token;
private HttpResponseMessage _response; private HttpResponseMessage _response;
private static readonly object _lock = new object(); private static readonly object _lock = new object();
private ITestOutputHelper _output;
public RaftTests() public RaftTests(ITestOutputHelper output)
{ {
_output = output;
_httpClientForAssertions = new HttpClient(); _httpClientForAssertions = new HttpClient();
_httpClient = new HttpClient(); _httpClient = new HttpClient();
var ocelotBaseUrl = "http://localhost:5000"; var ocelotBaseUrl = "http://localhost:5000";
@ -161,35 +165,44 @@ namespace Ocelot.IntegrationTests
{ {
bool SendCommand() bool SendCommand()
{ {
var p = _peers.Peers.First(); try
var json = JsonConvert.SerializeObject(command,new JsonSerializerSettings() {
TypeNameHandling = TypeNameHandling.All
});
var httpContent = new StringContent(json);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
using(var httpClient = new HttpClient())
{ {
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _token.AccessToken); var p = _peers.Peers.First();
var response = httpClient.PostAsync($"{p.HostAndPort}/administration/raft/command", httpContent).GetAwaiter().GetResult(); var json = JsonConvert.SerializeObject(command, new JsonSerializerSettings()
response.EnsureSuccessStatusCode();
var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
var errorResult = JsonConvert.DeserializeObject<ErrorResponse<UpdateFileConfiguration>>(content);
if(!string.IsNullOrEmpty(errorResult.Error))
{ {
return false; TypeNameHandling = TypeNameHandling.All
});
var httpContent = new StringContent(json);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _token.AccessToken);
var response = httpClient.PostAsync($"{p.HostAndPort}/administration/raft/command", httpContent).GetAwaiter().GetResult();
response.EnsureSuccessStatusCode();
var content = response.Content.ReadAsStringAsync().GetAwaiter().GetResult();
var errorResult = JsonConvert.DeserializeObject<ErrorResponse<UpdateFileConfiguration>>(content);
if (!string.IsNullOrEmpty(errorResult.Error))
{
return false;
}
var okResult = JsonConvert.DeserializeObject<OkResponse<UpdateFileConfiguration>>(content);
if (okResult.Command.Configuration.ReRoutes.Count == 2)
{
return true;
}
} }
var okResult = JsonConvert.DeserializeObject<OkResponse<UpdateFileConfiguration>>(content); return false;
}
if(okResult.Command.Configuration.ReRoutes.Count == 2) catch (Exception e)
{ {
return true; Console.WriteLine(e);
} return false;
} }
return false;
} }
var commandSent = WaitFor(20000).Until(() => SendCommand()); var commandSent = WaitFor(20000).Until(() => SendCommand());
@ -248,6 +261,7 @@ namespace Ocelot.IntegrationTests
} }
catch(Exception e) catch(Exception e)
{ {
_output.WriteLine($"{e.Message}, {e.StackTrace}");
Console.WriteLine(e); Console.WriteLine(e);
return false; return false;
} }

View File

@ -113,17 +113,7 @@ namespace Ocelot.IntegrationTests
}) })
.ConfigureServices(x => .ConfigureServices(x =>
{ {
Action<ConfigurationBuilderCachePart> settings = (s) =>
{
s.WithMicrosoftLogging(log =>
{
log.AddConsole(LogLevel.Debug);
})
.WithDictionaryHandle();
};
x.AddOcelot() x.AddOcelot()
.AddCacheManager(settings)
.AddAdministration("/administration", "secret"); .AddAdministration("/administration", "secret");
}) })
.Configure(app => .Configure(app =>