using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("Running tests...\n");
Type testClassType = typeof(UserManagementTests);
object testInstance = Activator.CreateInstance(testClassType);
MethodInfo[] testMethods = testClassType.GetMethods()
.Where(m => m.GetCustomAttributes(typeof(TestMethodAttribute), false).Length > 0)
int passed = 0, failed = 0;
foreach (var method in testMethods)
method.Invoke(testInstance, null);
Console.WriteLine($"✅ {method.Name} PASSED");
Console.WriteLine($"❌ {method.Name} FAILED: {ex.InnerException?.Message ?? ex.Message}");
Console.WriteLine($"\nTests Completed: {passed + failed} Total, {passed} Passed, {failed} Failed.");
public class UserManagement
private readonly HashSet<string> _userIDs = new HashSet<string>();
public bool AddUser(string userId)
if (string.IsNullOrWhiteSpace(userId))
return _userIDs.Add(userId);
public class UserManagementTests
public void AddUser_ValidUserId_ReturnsTrue()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser("user123");
public void AddUser_DuplicateUserId_ReturnsFalse()
UserManagement userManagement = new UserManagement();
userManagement.AddUser("user123");
bool result = userManagement.AddUser("user123");
public void AddUser_EmptyUserId_ReturnsFalse()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser("");
public void AddUser_NullUserId_ReturnsFalse()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser(null);
public void AddUser_WhiteSpaceUserId_ReturnsFalse()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser(" ");
public void AddUser_MultipleUniqueUserIds_ReturnsTrue()
UserManagement userManagement = new UserManagement();
Assert.IsTrue(userManagement.AddUser("user1"));
Assert.IsTrue(userManagement.AddUser("user2"));
Assert.IsTrue(userManagement.AddUser("user3"));
public void AddUser_UserIdWithSpecialCharacters_ReturnsTrue()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser("user!@#$%^");
public void AddUser_UserIdWithUnicodeCharacters_ReturnsTrue()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser("user你好世界");
public void AddUser_LongUserId_ReturnsTrue()
UserManagement userManagement = new UserManagement();
string longUserId = new string('a', 1000);
bool result = userManagement.AddUser(longUserId);
public void AddUser_UserIdWithLeadingAndTrailingSpaces_ReturnsTrue()
UserManagement userManagement = new UserManagement();
bool result = userManagement.AddUser(" user123 ");