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";
@ -160,14 +164,17 @@ namespace Ocelot.IntegrationTests
private void WhenISendACommandIntoTheCluster(UpdateFileConfiguration command) private void WhenISendACommandIntoTheCluster(UpdateFileConfiguration command)
{ {
bool SendCommand() bool SendCommand()
{
try
{ {
var p = _peers.Peers.First(); var p = _peers.Peers.First();
var json = JsonConvert.SerializeObject(command,new JsonSerializerSettings() { var json = JsonConvert.SerializeObject(command, new JsonSerializerSettings()
{
TypeNameHandling = TypeNameHandling.All TypeNameHandling = TypeNameHandling.All
}); });
var httpContent = new StringContent(json); var httpContent = new StringContent(json);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
using(var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _token.AccessToken); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _token.AccessToken);
var response = httpClient.PostAsync($"{p.HostAndPort}/administration/raft/command", httpContent).GetAwaiter().GetResult(); var response = httpClient.PostAsync($"{p.HostAndPort}/administration/raft/command", httpContent).GetAwaiter().GetResult();
@ -176,14 +183,14 @@ namespace Ocelot.IntegrationTests
var errorResult = JsonConvert.DeserializeObject<ErrorResponse<UpdateFileConfiguration>>(content); var errorResult = JsonConvert.DeserializeObject<ErrorResponse<UpdateFileConfiguration>>(content);
if(!string.IsNullOrEmpty(errorResult.Error)) if (!string.IsNullOrEmpty(errorResult.Error))
{ {
return false; return false;
} }
var okResult = JsonConvert.DeserializeObject<OkResponse<UpdateFileConfiguration>>(content); var okResult = JsonConvert.DeserializeObject<OkResponse<UpdateFileConfiguration>>(content);
if(okResult.Command.Configuration.ReRoutes.Count == 2) if (okResult.Command.Configuration.ReRoutes.Count == 2)
{ {
return true; return true;
} }
@ -191,6 +198,12 @@ namespace Ocelot.IntegrationTests
return false; return false;
} }
catch (Exception e)
{
Console.WriteLine(e);
return false;
}
}
var commandSent = WaitFor(20000).Until(() => SendCommand()); var commandSent = WaitFor(20000).Until(() => SendCommand());
commandSent.ShouldBeTrue(); commandSent.ShouldBeTrue();
@ -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 =>