mirror of
https://github.com/RedWizardsLab/EchoHub.git
synced 2026-09-06 15:46:03 +02:00
Refactor and update various components of EchoHub.Server
- Updated launchSettings.json for consistency. - Refactored FileValidationHelper to improve image validation logic. - Enhanced ServerDirectoryService for better connection handling and user count updates. - Improved DatabaseSetup for legacy database handling and seeding default channels. - Refined FirstRunSetup to ensure JWT secret generation. - Removed appsettings.Development.json as it is no longer needed. - Updated EchoHub.Tests project file for consistency. - Added unit tests for FileValidationHelper and PresenceTracker with improved assertions. - Updated ValidationConstantsTests to ensure regex validations are correct. - Cleaned up solution file formatting for better readability.
This commit is contained in:
@@ -1,68 +1,68 @@
|
||||
using EchoHub.Server.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace EchoHub.Tests;
|
||||
|
||||
public class PresenceTrackerTests
|
||||
{
|
||||
[Fact]
|
||||
public void UserConnected_IsOnline_ReturnsTrue()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
Assert.True(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UserDisconnected_LastConnection_IsOnlineReturnsFalse()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.UserDisconnected("conn1");
|
||||
Assert.False(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MultipleConnections_DisconnectOne_StillOnline()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
var userId = Guid.NewGuid();
|
||||
tracker.UserConnected("conn1", userId, "alice");
|
||||
tracker.UserConnected("conn2", userId, "alice");
|
||||
tracker.UserDisconnected("conn1");
|
||||
Assert.True(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void JoinChannel_GetOnlineUsersInChannel_ReturnsUser()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
var users = tracker.GetOnlineUsersInChannel("general");
|
||||
Assert.Contains("alice", users);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void LeaveChannel_UserNoLongerInChannel()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
tracker.LeaveChannel("alice", "general");
|
||||
var users = tracker.GetOnlineUsersInChannel("general");
|
||||
Assert.DoesNotContain("alice", users);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetChannelsForUser_ReturnsJoinedChannels()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
tracker.JoinChannel("alice", "random");
|
||||
var channels = tracker.GetChannelsForUser("alice");
|
||||
Assert.Contains("general", channels);
|
||||
Assert.Contains("random", channels);
|
||||
}
|
||||
}
|
||||
using EchoHub.Server.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace EchoHub.Tests;
|
||||
|
||||
public class PresenceTrackerTests
|
||||
{
|
||||
[Fact]
|
||||
public void UserConnected_IsOnline_ReturnsTrue()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
Assert.True(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UserDisconnected_LastConnection_IsOnlineReturnsFalse()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.UserDisconnected("conn1");
|
||||
Assert.False(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void MultipleConnections_DisconnectOne_StillOnline()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
var userId = Guid.NewGuid();
|
||||
tracker.UserConnected("conn1", userId, "alice");
|
||||
tracker.UserConnected("conn2", userId, "alice");
|
||||
tracker.UserDisconnected("conn1");
|
||||
Assert.True(tracker.IsOnline("alice"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void JoinChannel_GetOnlineUsersInChannel_ReturnsUser()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
var users = tracker.GetOnlineUsersInChannel("general");
|
||||
Assert.Contains("alice", users);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void LeaveChannel_UserNoLongerInChannel()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
tracker.LeaveChannel("alice", "general");
|
||||
var users = tracker.GetOnlineUsersInChannel("general");
|
||||
Assert.DoesNotContain("alice", users);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetChannelsForUser_ReturnsJoinedChannels()
|
||||
{
|
||||
var tracker = new PresenceTracker();
|
||||
tracker.UserConnected("conn1", Guid.NewGuid(), "alice");
|
||||
tracker.JoinChannel("alice", "general");
|
||||
tracker.JoinChannel("alice", "random");
|
||||
var channels = tracker.GetChannelsForUser("alice");
|
||||
Assert.Contains("general", channels);
|
||||
Assert.Contains("random", channels);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user