forked from ThreeMammals/Ocelot
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* ThreeMammals#463 save both files * ThreeMammals#463 made it so we dont save to disk on startup unless using admin api
- Loading branch information
1 parent
9f44483
commit 1817564
Showing
8 changed files
with
484 additions
and
274 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
namespace Ocelot.AcceptanceTests | ||
{ | ||
using System; | ||
using System.Collections.Generic; | ||
using System.IO; | ||
using System.Net; | ||
using System.Threading.Tasks; | ||
using Configuration.Repository; | ||
using Microsoft.AspNetCore.Http; | ||
using Ocelot.Configuration.File; | ||
using Responses; | ||
using TestStack.BDDfy; | ||
using Xunit; | ||
|
||
public class StartupTests : IDisposable | ||
{ | ||
private readonly Steps _steps; | ||
private readonly ServiceHandler _serviceHandler; | ||
private string _downstreamPath; | ||
|
||
public StartupTests() | ||
{ | ||
_serviceHandler = new ServiceHandler(); | ||
_steps = new Steps(); | ||
} | ||
|
||
[Fact] | ||
public void should_not_try_and_write_to_disk_on_startup_when_not_using_admin_api() | ||
{ | ||
var configuration = new FileConfiguration | ||
{ | ||
ReRoutes = new List<FileReRoute> | ||
{ | ||
new FileReRoute | ||
{ | ||
DownstreamPathTemplate = "/", | ||
DownstreamScheme = "http", | ||
DownstreamHostAndPorts = new List<FileHostAndPort> | ||
{ | ||
new FileHostAndPort | ||
{ | ||
Host = "localhost", | ||
Port = 52179, | ||
} | ||
}, | ||
UpstreamPathTemplate = "/", | ||
UpstreamHttpMethod = new List<string> { "Get" }, | ||
} | ||
} | ||
}; | ||
|
||
var fakeRepo = new FakeFileConfigurationRepository(); | ||
|
||
this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:52179", "/", 200, "Hello from Laura")) | ||
.And(x => _steps.GivenThereIsAConfiguration(configuration)) | ||
.And(x => _steps.GivenOcelotIsRunningWithBlowingUpDiskRepo(fakeRepo)) | ||
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) | ||
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) | ||
.BDDfy(); | ||
} | ||
|
||
private void GivenThereIsAServiceRunningOn(string baseUrl, string basePath, int statusCode, string responseBody) | ||
{ | ||
_serviceHandler.GivenThereIsAServiceRunningOn(baseUrl, basePath, async context => | ||
{ | ||
_downstreamPath = !string.IsNullOrEmpty(context.Request.PathBase.Value) ? context.Request.PathBase.Value : context.Request.Path.Value; | ||
|
||
if (_downstreamPath != basePath) | ||
{ | ||
context.Response.StatusCode = statusCode; | ||
await context.Response.WriteAsync("downstream path didnt match base path"); | ||
} | ||
else | ||
{ | ||
context.Response.StatusCode = statusCode; | ||
await context.Response.WriteAsync(responseBody); | ||
} | ||
}); | ||
} | ||
|
||
public void Dispose() | ||
{ | ||
_serviceHandler?.Dispose(); | ||
_steps.Dispose(); | ||
} | ||
|
||
class FakeFileConfigurationRepository : IFileConfigurationRepository | ||
{ | ||
public Task<Response<FileConfiguration>> Get() | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
|
||
public Task<Response> Set(FileConfiguration fileConfiguration) | ||
{ | ||
throw new NotImplementedException(); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.