Skip to content

Commit

Permalink
Fix fake provider
Browse files Browse the repository at this point in the history
  • Loading branch information
ReubenBond committed May 15, 2024
1 parent 1f75b0c commit 4dc65d9
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
22 changes: 16 additions & 6 deletions test/NonSilo.Tests/General/RingTests_Standalone.cs
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ private static int CompareSiloAddressesByHash(SiloAddress x, SiloAddress y)
internal sealed class FakeSiloStatusOracle : ISiloStatusOracle
{
private readonly Dictionary<SiloAddress, SiloStatus> _content = [];
private readonly HashSet<ISiloStatusListener> _subscribers = [];

public FakeSiloStatusOracle()
{
Expand Down Expand Up @@ -236,19 +237,28 @@ public Dictionary<SiloAddress, SiloStatus> GetApproximateSiloStatuses(bool onlyA
: new Dictionary<SiloAddress, SiloStatus>(_content);
}

public void SetSiloStatus(SiloAddress siloAddress, SiloStatus status) => _content[siloAddress] = status;
public void SetSiloStatus(SiloAddress siloAddress, SiloStatus status)
{
_content[siloAddress] = status;
foreach (var subscriber in _subscribers)
{
subscriber.SiloStatusChangeNotification(siloAddress, status);
}
}

public bool IsDeadSilo(SiloAddress silo) => GetApproximateSiloStatus(silo) == SiloStatus.Dead;

public bool IsFunctionalDirectory(SiloAddress siloAddress) => !GetApproximateSiloStatus(siloAddress).IsTerminating();

#region Not Implemented
public bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) => throw new NotImplementedException();
public bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) => _subscribers.Add(observer);

public bool TryGetSiloName(SiloAddress siloAddress, out string siloName) => throw new NotImplementedException();
public bool TryGetSiloName(SiloAddress siloAddress, out string siloName)
{
siloName = "TestSilo";
return true;
}

public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) => throw new NotImplementedException();
#endregion
public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) => _subscribers.Remove(observer);
}

internal class RangeBreakable
Expand Down
22 changes: 16 additions & 6 deletions test/TesterInternal/LivenessTests/ConsistentRingProviderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ private Dictionary<SiloAddress, List<int>> GetQueueHistogram(List<(SiloAddress K
internal sealed class FakeSiloStatusOracle : ISiloStatusOracle
{
private readonly Dictionary<SiloAddress, SiloStatus> _content = [];
private readonly HashSet<ISiloStatusListener> _subscribers = [];

public FakeSiloStatusOracle()
{
Expand Down Expand Up @@ -158,19 +159,28 @@ public Dictionary<SiloAddress, SiloStatus> GetApproximateSiloStatuses(bool onlyA
: new Dictionary<SiloAddress, SiloStatus>(_content);
}

public void SetSiloStatus(SiloAddress siloAddress, SiloStatus status) => _content[siloAddress] = status;
public void SetSiloStatus(SiloAddress siloAddress, SiloStatus status)
{
_content[siloAddress] = status;
foreach (var subscriber in _subscribers)
{
subscriber.SiloStatusChangeNotification(siloAddress, status);
}
}

public bool IsDeadSilo(SiloAddress silo) => GetApproximateSiloStatus(silo) == SiloStatus.Dead;

public bool IsFunctionalDirectory(SiloAddress siloAddress) => !GetApproximateSiloStatus(siloAddress).IsTerminating();

#region Not Implemented
public bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) => throw new NotImplementedException();
public bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) => _subscribers.Add(observer);

public bool TryGetSiloName(SiloAddress siloAddress, out string siloName) => throw new NotImplementedException();
public bool TryGetSiloName(SiloAddress siloAddress, out string siloName)
{
siloName = "TestSilo";
return true;
}

public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) => throw new NotImplementedException();
#endregion
public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) => _subscribers.Remove(observer);
}
}
}
Expand Down

0 comments on commit 4dc65d9

Please sign in to comment.