mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-30 22:12:51 +08:00

* brought in rafty * moved raft classes into Ocelot and deleted from int project * started to set up rafty in Ocelot * RAFTY INSIDE OCELOT...WOOT * more work adding rafty...just need to get auth working now * rudimentary authenticated raft requests working * asyn await stuff * hacked rafty into the fileconfigurationcontroller...everything seems to be working roughly but I have a lot of refactoring to do * updated to latest rafty that doesnt need an id * hacky but all tests passing * changed admin area set up to use builder not configuration.json, changed admin area auth to use client credentials * missing code coverage * ignore raft sectionf for code coverage * ignore raft sectionf for code coverage * back to normal filters * try exclude attr * missed these * moved client secret to builder for authentication and updated docs * lock to try and fix error accessing identity server created temprsa file on build server * updated postman scripts and changed Ocelot to not always use type handling as this looked crap when manually accessing the configuration endpoint * added rafty docs * changes I missed * added serialisation code we need for rafty to process commands when they proxy to leader * moved controllers into their feature slices
45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using Moq;
|
|
using Ocelot.Configuration.Setter;
|
|
using Ocelot.Raft;
|
|
using TestStack.BDDfy;
|
|
using Xunit;
|
|
|
|
namespace Ocelot.UnitTests.Raft
|
|
{
|
|
public class OcelotFiniteStateMachineTests
|
|
{
|
|
private UpdateFileConfiguration _command;
|
|
private OcelotFiniteStateMachine _fsm;
|
|
private Mock<IFileConfigurationSetter> _setter;
|
|
|
|
public OcelotFiniteStateMachineTests()
|
|
{
|
|
_setter = new Mock<IFileConfigurationSetter>();
|
|
_fsm = new OcelotFiniteStateMachine(_setter.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public void should_handle_update_file_configuration_command()
|
|
{
|
|
this.Given(x => GivenACommand(new UpdateFileConfiguration(new Ocelot.Configuration.File.FileConfiguration())))
|
|
.When(x => WhenTheCommandIsHandled())
|
|
.Then(x => ThenTheStateIsUpdated())
|
|
.BDDfy();
|
|
}
|
|
|
|
private void GivenACommand(UpdateFileConfiguration command)
|
|
{
|
|
_command = command;
|
|
}
|
|
|
|
private void WhenTheCommandIsHandled()
|
|
{
|
|
_fsm.Handle(new Rafty.Log.LogEntry(_command, _command.GetType(), 0));
|
|
}
|
|
|
|
private void ThenTheStateIsUpdated()
|
|
{
|
|
_setter.Verify(x => x.Set(_command.Configuration), Times.Once);
|
|
}
|
|
}
|
|
} |