Skip to content

Commit

Permalink
test: 重構 SignalR 測試為 Generator 版本,並為 Generator 增加驗證失敗時的訊息
Browse files Browse the repository at this point in the history
  • Loading branch information
aa89227 committed Jul 25, 2024
1 parent 508c8d8 commit ee38ce0
Show file tree
Hide file tree
Showing 57 changed files with 613 additions and 966 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
using Monopoly.ApplicationLayer.Application.MonopolyUsecases.Queries;
using Monopoly.InterfaceAdapterLayer.Server.Presenters;
using SharedLibrary;
using SharedLibrary.ResponseArgs.Monopoly;
using SharedLibrary.ResponseArgs.ReadyRoom;

namespace Monopoly.InterfaceAdapterLayer.Server.Hubs.Monopoly;

Expand Down Expand Up @@ -99,8 +97,9 @@ public override async Task OnConnectedAsync()
await EnsureGameExists();

await Groups.AddToGroupAsync(Context.ConnectionId, GameId);
await Clients.Caller.WelcomeEvent(new WelcomeEventArgs { PlayerId = PlayerId });
await Clients.Group(GameId).PlayerJoinGameEvent(new PlayerJoinGameEventArgs { PlayerId = PlayerId });
// 暫時不需要,之後考慮有沒有必要
// await Clients.Caller.WelcomeEvent(new WelcomeEventArgs { PlayerId = PlayerId });
// await Clients.Group(GameId).PlayerJoinGameEvent(new PlayerJoinGameEventArgs { PlayerId = PlayerId });
}

private async Task EnsureGameExists()
Expand Down
2 changes: 1 addition & 1 deletion SharedLibrary/IMonopolyResponses.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public interface IMonopolyResponses

Task SuspendRoundEvent(SuspendRoundEventArgs e);

Task PlayerBankruptEvent(PlayerBankruptEvent e);
Task PlayerBankruptEvent(PlayerBankruptEventArgs e);

Task SettlementEvent(SettlementEventArgs e);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class CannotGetRewardBecauseStandOnStartEventArgs : EventArgs
public record CannotGetRewardBecauseStandOnStartEventArgs
{
public required string PlayerId { get; init; }
}
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/ChessMovedEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class ChessMovedEventArgs : EventArgs
public record ChessMovedEventArgs
{
public required string PlayerId { get; init; }
public required string BlockId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class CurrentPlayerCannotBidEventArgs : EventArgs
public record CurrentPlayerCannotBidEventArgs
{
public required string PlayerId { get; init; }
}
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/EndAuctionEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class EndAuctionEventArgs : EventArgs
public record EndAuctionEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/EndRoundEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class EndRoundEventArgs : EventArgs
public record EndRoundEventArgs
{
public required string PlayerId { get; init; }
public required string NextPlayerId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class EndRoundFailEventArgs : EventArgs
public record EndRoundFailEventArgs
{
public required string PlayerId { get; init; }
}
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/GameStartEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class GameStartEventArgs : EventArgs
public record GameStartEventArgs
{
public required string GameStage { get; init; }
public required string CurrentPlayerId { get; init; }
Expand Down
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/HouseMaxEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class HouseMaxEventArgs : EventArgs
public record HouseMaxEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class MortgageDueEventArgs : EventArgs
public record MortgageDueEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class OnlyOnePersonEventArgs : EventArgs
public record OnlyOnePersonEventArgs
{
public required string GameStage { get; init; }
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBankruptEvent : EventArgs
public record PlayerBankruptEventArgs
{
public required string PlayerId { get; init; }
}
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/PlayerBidEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBidEventArgs : EventArgs
public record PlayerBidEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBidFailEventArgs : EventArgs
public record PlayerBidFailEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBuildHouseEventArgs : EventArgs
public record PlayerBuildHouseEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBuyBlockEventArgs : EventArgs
public record PlayerBuyBlockEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBuyBlockInsufficientFundsEventArgs : EventArgs
public record PlayerBuyBlockInsufficientFundsEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerBuyBlockOccupiedByOtherPlayerEventArgs : EventArgs
public record PlayerBuyBlockOccupiedByOtherPlayerEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerCanBuildHouseEventArgs : EventArgs
public record PlayerCanBuildHouseEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerCanBuyLandEventArgs : EventArgs
public record PlayerCanBuyLandEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerCannotBuildHouseEventArgs : EventArgs
public record PlayerCannotBuildHouseEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerCannotMortgageEventArgs : EventArgs
public record PlayerCannotMortgageEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerChooseDirectionEventArgs : EventArgs
public record PlayerChooseDirectionEventArgs
{
public required string PlayerId { get; init; }
public required string Direction { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerDoesntNeedToPayTollEventArgs : EventArgs
public record PlayerDoesntNeedToPayTollEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerJoinGameEventArgs : EventArgs
public record PlayerJoinGameEventArgs
{
public required string PlayerId { get; init; }
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerJoinGameFailedEventArgs : EventArgs
public record PlayerJoinGameFailedEventArgs
{
public required string Message { get; init; }
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerMortgageEventArgs : EventArgs
public record PlayerMortgageEventArgs
{
public required string PlayerId { get; init; }
public required string LandId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerNeedToChooseDirectionEventArgs : EventArgs
public record PlayerNeedToChooseDirectionEventArgs
{
public required string PlayerId { get; init; }
public required string[] Directions { get; init; }

public virtual bool Equals(PlayerNeedToChooseDirectionEventArgs? other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return PlayerId == other.PlayerId && Directions.Order().SequenceEqual(other.Directions.Order());
}

public override int GetHashCode()
{
return HashCode.Combine(PlayerId, Directions);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerNeedsToPayTollEventArgs
public record PlayerNeedsToPayTollEventArgs
{
public required string PlayerId { get; init; }
public required string OwnerId { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerPayTollEventArgs : EventArgs
public record PlayerPayTollEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerRedeemEventArgs : EventArgs
public record PlayerRedeemEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerRolledDiceEventArgs : EventArgs
public record PlayerRolledDiceEventArgs
{
public required string PlayerId { get; init; }
public required int DiceCount { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerThroughStartEventArgs : EventArgs
public record PlayerThroughStartEventArgs
{
public required string PlayerId { get; init; }
public required decimal GainMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerTooPoorToBidEventArgs : EventArgs
public record PlayerTooPoorToBidEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerTooPoorToPayTollEventArgs : EventArgs
public record PlayerTooPoorToPayTollEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class PlayerTooPoorToRedeemEventArgs : EventArgs
public record PlayerTooPoorToRedeemEventArgs
{
public required string PlayerId { get; init; }
public required decimal PlayerMoney { get; init; }
Expand Down
2 changes: 1 addition & 1 deletion SharedLibrary/ResponseArgs/Monopoly/SettlementEventArgs.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class SettlementEventArgs : EventArgs
public record SettlementEventArgs
{
public required int Rounds { get; init; }
public required string[] PlayerIds { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class SomePlayersPreparingEventArgs : EventArgs
public record SomePlayersPreparingEventArgs
{
public required string GameStage { get; init; }
public required string[] PlayerIds { get; init; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace SharedLibrary.ResponseArgs.Monopoly;

public class SuspendRoundEventArgs : EventArgs
public record SuspendRoundEventArgs
{
public required string PlayerId { get; init; }
public required int SuspendRounds { get; init; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,9 @@ private static string GenerateDelegates(string assertClassName, IEnumerable<IMet
{
var @event = Pop(_cancellationToken);
Assert.AreEqual("{{x.Name}}", @event.EventName);
CollectionAssert.AreEqual(new object[]{ {{parametersInOn}} }, @event.EventArgs);
var expected = new object[]{ {{parametersInOn}} };
var assertionFailedMessage = $"Expected: {System.Text.Json.JsonSerializer.Serialize(expected)}{System.Environment.NewLine}Actual: {System.Text.Json.JsonSerializer.Serialize(@event.EventArgs)}";
CollectionAssert.AreEqual(expected, @event.EventArgs, assertionFailedMessage);
return this;
}
Expand Down
Loading

0 comments on commit ee38ce0

Please sign in to comment.