.net 5.0 and apply formatting

This commit is contained in:
Ben Harris 2021-09-17 16:24:13 -04:00
parent f085b631a1
commit 3049122294
33 changed files with 161 additions and 300 deletions

View File

@ -1,5 +1,5 @@
using System.Linq;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp
{

View File

@ -1,51 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4033AFFA-BEA3-4BDF-84EA-59A23360FD36}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChatSharp</RootNamespace>
<AssemblyName>ChatSharp</AssemblyName>
<FileAlignment>512</FileAlignment>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<TargetFrameworks>netstandard2.0;net4</TargetFrameworks>
<TargetFrameworks>net5.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\ChatSharp.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"></Target><Target Name="AfterBuild"></Target>
-->
</Project>

View File

@ -19,7 +19,7 @@ namespace ChatSharp.Events
/// The original topic.
/// </summary>
public string OldTopic { get; set; }
internal ChannelTopicEventArgs(IrcChannel channel, string oldTopic, string topic)
{
Channel = channel;

View File

@ -1,5 +1,4 @@
using System;
using System.Net.Sockets;
namespace ChatSharp.Events
{

View File

@ -1,5 +1,4 @@
using System;
using System.Net.Sockets;
namespace ChatSharp.Events
{

View File

@ -30,7 +30,7 @@ namespace ChatSharp
/// <summary>
/// The reason provided for the kick (may be null).
/// </summary>
public string Reason { get; set; }
public string Reason { get; set; }
}
}

View File

@ -17,7 +17,7 @@ namespace ChatSharp.Handlers
case "LS":
client.IsNegotiatingCapabilities = true;
// Parse server capabilities
var serverCapsString = (message.Parameters[2] == "*" ? message.Parameters[3] : message.Parameters[2]);
var serverCapsString = message.Parameters[2] == "*" ? message.Parameters[3] : message.Parameters[2];
serverCaps.AddRange(serverCapsString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
// CAP 3.2 multiline support. Send CAP requests on the last CAP LS line.
@ -77,7 +77,7 @@ namespace ChatSharp.Handlers
break;
case "LIST":
var activeCapsString = (message.Parameters[2] == "*" ? message.Parameters[3] : message.Parameters[2]);
var activeCapsString = message.Parameters[2] == "*" ? message.Parameters[3] : message.Parameters[2];
var activeCaps = activeCapsString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
// Check which cap we have that isn't active but the server lists
@ -104,7 +104,8 @@ namespace ChatSharp.Handlers
// Disable each recently server-disabled capability
disabledCaps.ForEach(
cap => {
cap =>
{
if (client.Capabilities.Contains(cap) && client.Capabilities[cap].IsEnabled)
client.Capabilities.Disable(cap);
}

View File

@ -75,8 +75,8 @@ namespace ChatSharp.Handlers
// Parse hostmask
var nick = hostmask.Substring(0, hostmask.IndexOf("!"));
var ident = hostmask.Substring(nick.Length + 1, hostmask.LastIndexOf("@") - (nick.Length + 1));
var hostname = hostmask.Substring(hostmask.LastIndexOf("@") + 1);
var ident = hostmask[(nick.Length + 1)..hostmask.LastIndexOf("@")];
var hostname = hostmask[(hostmask.LastIndexOf("@") + 1)..];
// Get user modes
var modes = client.ServerInfo.GetModesForNick(nick);

View File

@ -1,6 +1,3 @@
using ChatSharp.Events;
using System.Linq;
namespace ChatSharp.Handlers
{
/// <summary>

View File

@ -4,8 +4,8 @@ namespace ChatSharp.Handlers
{
public static void HandleBanListPart(IrcClient client, IrcMessage message)
{
var parameterString = message.RawMessage.Substring(message.RawMessage.IndexOf(' '));
var parameters = parameterString.Substring(parameterString.IndexOf(' ')).Split(' ');
var parameterString = message.RawMessage[message.RawMessage.IndexOf(' ')..];
var parameters = parameterString[parameterString.IndexOf(' ')..].Split(' ');
var request = client.RequestManager.PeekOperation("GETMODE b " + parameters[1]);
var list = (MaskCollection)request.State;
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
@ -15,14 +15,13 @@ namespace ChatSharp.Handlers
public static void HandleBanListEnd(IrcClient client, IrcMessage message)
{
var request = client.RequestManager.DequeueOperation("GETMODE b " + message.Parameters[1]);
if (request.Callback != null)
request.Callback(request);
request.Callback?.Invoke(request);
}
public static void HandleExceptionListPart(IrcClient client, IrcMessage message)
{
var parameterString = message.RawMessage.Substring(message.RawMessage.IndexOf(' ') + 1);
var parameters = parameterString.Substring(parameterString.IndexOf(' ') + 1).Split(' ');
var parameterString = message.RawMessage[(message.RawMessage.IndexOf(' ') + 1)..];
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
var request = client.RequestManager.PeekOperation("GETMODE e " + parameters[1]);
var list = (MaskCollection)request.State;
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
@ -32,14 +31,13 @@ namespace ChatSharp.Handlers
public static void HandleExceptionListEnd(IrcClient client, IrcMessage message)
{
var request = client.RequestManager.DequeueOperation("GETMODE e " + message.Parameters[1]);
if (request.Callback != null)
request.Callback(request);
request.Callback?.Invoke(request);
}
public static void HandleInviteListPart(IrcClient client, IrcMessage message)
{
var parameterString = message.RawMessage.Substring(message.RawMessage.IndexOf(' ') + 1);
var parameters = parameterString.Substring(parameterString.IndexOf(' ') + 1).Split(' ');
var parameterString = message.RawMessage[(message.RawMessage.IndexOf(' ') + 1)..];
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
var request = client.RequestManager.PeekOperation("GETMODE I " + parameters[1]);
var list = (MaskCollection)request.State;
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
@ -49,14 +47,13 @@ namespace ChatSharp.Handlers
public static void HandleInviteListEnd(IrcClient client, IrcMessage message)
{
var request = client.RequestManager.DequeueOperation("GETMODE I " + message.Parameters[1]);
if (request.Callback != null)
request.Callback(request);
request.Callback?.Invoke(request);
}
public static void HandleQuietListPart(IrcClient client, IrcMessage message)
{
var parameterString = message.RawMessage.Substring(message.RawMessage.IndexOf(' ') + 1);
var parameters = parameterString.Substring(parameterString.IndexOf(' ') + 1).Split(' ');
var parameterString = message.RawMessage[(message.RawMessage.IndexOf(' ') + 1)..];
var parameters = parameterString[(parameterString.IndexOf(' ') + 1)..].Split(' ');
var request = client.RequestManager.PeekOperation("GETMODE q " + parameters[1]);
var list = (MaskCollection)request.State;
list.Add(new Mask(parameters[2], client.Users.GetOrAdd(parameters[3]),
@ -66,8 +63,7 @@ namespace ChatSharp.Handlers
public static void HandleQuietListEnd(IrcClient client, IrcMessage message)
{
var request = client.RequestManager.DequeueOperation("GETMODE q " + message.Parameters[1]);
if (request.Callback != null)
request.Callback(request);
request.Callback?.Invoke(request);
}
}
}

View File

@ -16,7 +16,7 @@ namespace ChatSharp.Handlers
{
if (message.Parameters.Length != 2)
throw new IrcProtocolException("372 MOTD message is incorrectly formatted.");
var part = message.Parameters[1].Substring(2);
var part = message.Parameters[1][2..];
MOTD += part + Environment.NewLine;
client.OnMOTDPartReceived(new ServerMOTDEventArgs(part));
}
@ -27,19 +27,18 @@ namespace ChatSharp.Handlers
client.OnConnectionComplete(new EventArgs());
// Verify our identity
VerifyOurIdentity(client);
}
public static void HandleMOTDNotFound(IrcClient client, IrcMessage message)
{
public static void HandleMOTDNotFound(IrcClient client, IrcMessage message)
{
client.OnMOTDReceived(new ServerMOTDEventArgs(MOTD));
client.OnConnectionComplete(new EventArgs());
VerifyOurIdentity(client);
}
}
private static void VerifyOurIdentity(IrcClient client)
{
private static void VerifyOurIdentity(IrcClient client)
{
if (client.Settings.WhoIsOnConnect)
{
client.WhoIs(client.User.Nick, whois =>

View File

@ -1,7 +1,6 @@
using ChatSharp.Events;
using System.Linq;
using System.Collections.Generic;
using System;
using System.Linq;
namespace ChatSharp.Handlers
{
@ -181,12 +180,12 @@ namespace ChatSharp.Handlers
// TODO: Support the ones here that aren't done properly
if (client.ServerInfo.SupportedChannelModes.ParameterizedSettings.Contains(c))
{
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
}
else if (client.ServerInfo.SupportedChannelModes.ChannelLists.Contains(c))
{
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
}
else if (client.ServerInfo.SupportedChannelModes.ChannelUserModes.Contains(c))
@ -213,7 +212,7 @@ namespace ChatSharp.Handlers
if (channel.UsersByMode[c].Contains(user.Nick))
user.ChannelModes[channel] = null;
}
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
(add ? "+" : "-") + c + " " + message.Parameters[i++]));
}
if (client.ServerInfo.SupportedChannelModes.Settings.Contains(c))
@ -225,7 +224,7 @@ namespace ChatSharp.Handlers
}
else
channel.Mode = channel.Mode.Replace(c.ToString(), string.Empty);
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
client.OnModeChanged(new ModeChangeEventArgs(channel.Name, new IrcUser(message.Prefix),
(add ? "+" : "-") + c));
}
}

View File

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.Text;
namespace ChatSharp.Handlers
{
@ -14,7 +13,7 @@ namespace ChatSharp.Handlers
if (message.Parameters[0] == "+")
{
// Based off irc-framework implementation
var plainString = string.Format("{0}\0{0}\0{1}", client.User.Nick, client.User.Password);
var plainString = $"{client.User.Nick}\0{client.User.Nick}\0{client.User.Password}";
var b64Bytes = Encoding.UTF8.GetBytes(Convert.ToBase64String(Encoding.UTF8.GetBytes(plainString)));
while (b64Bytes.Length >= 400)

View File

@ -1,5 +1,4 @@
using ChatSharp.Events;
using System.Linq;
namespace ChatSharp.Handlers
{
@ -20,7 +19,7 @@ namespace ChatSharp.Handlers
else
{
key = item.Remove(item.IndexOf('='));
value = item.Substring(item.IndexOf('=') + 1);
value = item[(item.IndexOf('=') + 1)..];
}
// TODO: Consider doing this differently
// TODO: Allow users to specify other things to handle
@ -29,9 +28,9 @@ namespace ChatSharp.Handlers
switch (key.ToUpper())
{
case "PREFIX":
var modes = value.Substring(1, value.IndexOf(')') - 1);
var prefixes = value.Substring(value.IndexOf(')') + 1);
client.ServerInfo.Prefixes = new[] {modes, prefixes};
var modes = value[1..value.IndexOf(')')];
var prefixes = value[(value.IndexOf(')') + 1)..];
client.ServerInfo.Prefixes = new[] { modes, prefixes };
break;
case "CHANTYPES":
client.ServerInfo.ChannelTypes = value.ToCharArray();
@ -58,7 +57,7 @@ namespace ChatSharp.Handlers
for (int i = 0; i < limits.Length; i++)
{
var limitedModes = limits[i].Remove(limits[i].IndexOf(':'));
var limit = int.Parse(limits[i].Substring(limits[i].IndexOf(':') + 1));
var limit = int.Parse(limits[i][(limits[i].IndexOf(':') + 1)..]);
foreach (var mode in limitedModes)
client.ServerInfo.ModeListLimits[i] = new ServerInfo.ModeListLimit(mode, limit);
}

View File

@ -1,6 +1,6 @@
using System;
using System.Linq;
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp.Handlers
{
@ -57,7 +57,7 @@ namespace ChatSharp.Handlers
var channels = message.Parameters[2].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < channels.Length; i++)
if (!channels[i].StartsWith("#"))
channels[i] = channels[i].Substring(1);
channels[i] = channels[i][1..];
whois.Channels = whois.Channels.Concat(channels).ToArray();
}
@ -67,8 +67,7 @@ namespace ChatSharp.Handlers
var whois = (WhoIs)request.State;
if (!client.Users.Contains(whois.User.Nick))
client.Users.Add(whois.User);
if (request.Callback != null)
request.Callback(request);
request.Callback?.Invoke(request);
client.OnWhoIsReceived(new Events.WhoIsReceivedEventArgs(whois));
}
@ -80,15 +79,18 @@ namespace ChatSharp.Handlers
if (query.Key != string.Empty && query.Value != null)
{
var whoList = (List<ExtendedWho>)client.RequestManager.PeekOperation(query.Key).State;
var who = new ExtendedWho();
who.Channel = message.Parameters[1];
who.User.User = message.Parameters[2];
who.IP = message.Parameters[3];
who.Server = message.Parameters[4];
who.User.Nick = message.Parameters[5];
who.Flags = message.Parameters[6];
var who = new ExtendedWho
{
Channel = message.Parameters[1],
User = new IrcUser
{
User = message.Parameters[2],
Nick = message.Parameters[5]
},
IP = message.Parameters[3],
Server = message.Parameters[4],
Flags = message.Parameters[6]
};
var supposedRealName = message.Parameters[7];
@ -96,7 +98,7 @@ namespace ChatSharp.Handlers
var hops = supposedRealName.Substring(0, supposedRealName.IndexOf(" "));
who.Hops = int.Parse(hops);
var realName = supposedRealName.Substring(supposedRealName.IndexOf(" ") + 1);
var realName = supposedRealName[(supposedRealName.IndexOf(" ") + 1)..];
who.User.RealName = realName;
whoList.Add(who);

View File

@ -1,7 +1,4 @@
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp
namespace ChatSharp
{
/// <summary>
/// A IRC capability.

View File

@ -14,7 +14,7 @@ namespace ChatSharp
/// <summary>
/// The channel topic. Will send a TOPIC command if set.
/// </summary>
public string Topic
public string Topic
{
get
{
@ -123,8 +123,8 @@ namespace ChatSharp
/// <returns></returns>
public override bool Equals(object obj)
{
if (obj is IrcChannel)
return Equals((IrcChannel)obj);
if (obj is IrcChannel channel)
return Equals(channel);
return false;
}

View File

@ -22,7 +22,7 @@ namespace ChatSharp
{
const string illegalCharacters = "\r\n\0";
if (destinations == null || !destinations.Any()) throw new InvalidOperationException("Message must have at least one target.");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", "message");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", nameof(message));
string to = string.Join(",", destinations);
SendRawMessage("PRIVMSG {0} :{1}{2}", to, PrivmsgPrefix, message);
}
@ -34,7 +34,7 @@ namespace ChatSharp
{
const string illegalCharacters = "\r\n\0";
if (destinations == null || !destinations.Any()) throw new InvalidOperationException("Message must have at least one target.");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", "message");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", nameof(message));
string to = string.Join(",", destinations);
SendRawMessage("PRIVMSG {0} :\x0001ACTION {1}{2}\x0001", to, PrivmsgPrefix, message);
}
@ -46,7 +46,7 @@ namespace ChatSharp
{
const string illegalCharacters = "\r\n\0";
if (destinations == null || !destinations.Any()) throw new InvalidOperationException("Message must have at least one target.");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", "message");
if (illegalCharacters.Any(message.Contains)) throw new ArgumentException("Illegal characters are present in message.", nameof(message));
string to = string.Join(",", destinations);
SendRawMessage("NOTICE {0} :{1}{2}", to, PrivmsgPrefix, message);
}
@ -161,8 +161,7 @@ namespace ChatSharp
var whois = new WhoIs();
RequestManager.QueueOperation("WHOIS " + nick, new RequestOperation(whois, ro =>
{
if (callback != null)
callback((WhoIs)ro.State);
callback?.Invoke((WhoIs)ro.State);
}));
SendRawMessage("WHOIS {0}", nick);
}
@ -224,8 +223,7 @@ namespace ChatSharp
RequestManager.QueueOperation("MODE " + channel, new RequestOperation(channel, ro =>
{
var c = Channels[(string)ro.State];
if (callback != null)
callback(c);
callback?.Invoke(c);
}));
SendRawMessage("MODE {0}", channel);
}
@ -247,8 +245,7 @@ namespace ChatSharp
RequestManager.QueueOperation("GETMODE " + mode + " " + channel, new RequestOperation(new MaskCollection(), ro =>
{
var c = (MaskCollection)ro.State;
if (callback != null)
callback(c);
callback?.Invoke(c);
}));
SendRawMessage("MODE {0} {1}", channel, mode);
}

View File

@ -152,11 +152,8 @@ namespace ChatSharp
/// <param name="useSSL">Connect with SSL if true.</param>
public IrcClient(string serverAddress, IrcUser user, bool useSSL = false)
{
if (serverAddress == null) throw new ArgumentNullException("serverAddress");
if (user == null) throw new ArgumentNullException("user");
User = user;
ServerAddress = serverAddress;
User = user ?? throw new ArgumentNullException(nameof(user));
ServerAddress = serverAddress ?? throw new ArgumentNullException(nameof(serverAddress));
Encoding = Encoding.UTF8;
Settings = new ClientSettings();
Handlers = new Dictionary<string, MessageHandler>();
@ -167,8 +164,8 @@ namespace ChatSharp
ServerInfo = new ServerInfo();
PrivmsgPrefix = "";
Channels = User.Channels = new ChannelCollection(this);
Users = new UserPool();
Users.Add(User); // Add self to user pool
// Add self to user pool
Users = new UserPool { User };
Capabilities = new CapabilityPool();
// List of supported capabilities
@ -193,7 +190,7 @@ namespace ChatSharp
ReadBuffer = new byte[ReadBufferLength];
ReadBufferIndex = 0;
PingTimer = new Timer(30000);
PingTimer.Elapsed += (sender, e) =>
PingTimer.Elapsed += (sender, e) =>
{
if (!string.IsNullOrEmpty(ServerNameFromPing))
SendRawMessage("PING :{0}", ServerNameFromPing);
@ -202,9 +199,9 @@ namespace ChatSharp
checkQueue.Elapsed += (sender, e) =>
{
string nextMessage;
if (WriteQueue.Count > 0)
if (!WriteQueue.IsEmpty)
{
while (!WriteQueue.TryDequeue(out nextMessage));
while (!WriteQueue.TryDequeue(out nextMessage)) ;
SendRawMessage(nextMessage);
}
};
@ -289,8 +286,7 @@ namespace ChatSharp
}
catch (IOException e)
{
var socketException = e.InnerException as SocketException;
if (socketException != null)
if (e.InnerException is SocketException socketException)
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
else
throw;
@ -375,8 +371,7 @@ namespace ChatSharp
}
catch (IOException e)
{
var socketException = e.InnerException as SocketException;
if (socketException != null)
if (e.InnerException is SocketException socketException)
OnNetworkError(new SocketErrorEventArgs(socketException.SocketErrorCode));
else
throw;
@ -390,9 +385,9 @@ namespace ChatSharp
OnRawMessageSent(new RawMessageEventArgs((string)result.AsyncState, true));
string nextMessage;
if (WriteQueue.Count > 0)
if (!WriteQueue.IsEmpty)
{
while (!WriteQueue.TryDequeue(out nextMessage));
while (!WriteQueue.TryDequeue(out nextMessage)) ;
SendRawMessage(nextMessage);
}
}
@ -403,7 +398,7 @@ namespace ChatSharp
public event EventHandler<Events.ErrorReplyEventArgs> ErrorReply;
internal void OnErrorReply(Events.ErrorReplyEventArgs e)
{
if (ErrorReply != null) ErrorReply(this, e);
ErrorReply?.Invoke(this, e);
}
/// <summary>
/// Raised for errors.
@ -411,7 +406,7 @@ namespace ChatSharp
public event EventHandler<Events.ErrorEventArgs> Error;
internal void OnError(Events.ErrorEventArgs e)
{
if (Error != null) Error(this, e);
Error?.Invoke(this, e);
}
/// <summary>
/// Raised for socket errors. ChatSharp does not automatically reconnect.
@ -419,7 +414,7 @@ namespace ChatSharp
public event EventHandler<SocketErrorEventArgs> NetworkError;
internal void OnNetworkError(SocketErrorEventArgs e)
{
if (NetworkError != null) NetworkError(this, e);
NetworkError?.Invoke(this, e);
}
/// <summary>
/// Occurs when a raw message is sent.
@ -427,7 +422,7 @@ namespace ChatSharp
public event EventHandler<RawMessageEventArgs> RawMessageSent;
internal void OnRawMessageSent(RawMessageEventArgs e)
{
if (RawMessageSent != null) RawMessageSent(this, e);
RawMessageSent?.Invoke(this, e);
}
/// <summary>
/// Occurs when a raw message received.
@ -435,7 +430,7 @@ namespace ChatSharp
public event EventHandler<RawMessageEventArgs> RawMessageReceived;
internal void OnRawMessageReceived(RawMessageEventArgs e)
{
if (RawMessageReceived != null) RawMessageReceived(this, e);
RawMessageReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a notice received.
@ -443,7 +438,7 @@ namespace ChatSharp
public event EventHandler<IrcNoticeEventArgs> NoticeReceived;
internal void OnNoticeReceived(IrcNoticeEventArgs e)
{
if (NoticeReceived != null) NoticeReceived(this, e);
NoticeReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when the server has sent us part of the MOTD.
@ -451,7 +446,7 @@ namespace ChatSharp
public event EventHandler<ServerMOTDEventArgs> MOTDPartReceived;
internal void OnMOTDPartReceived(ServerMOTDEventArgs e)
{
if (MOTDPartReceived != null) MOTDPartReceived(this, e);
MOTDPartReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when the entire server MOTD has been received.
@ -459,7 +454,7 @@ namespace ChatSharp
public event EventHandler<ServerMOTDEventArgs> MOTDReceived;
internal void OnMOTDReceived(ServerMOTDEventArgs e)
{
if (MOTDReceived != null) MOTDReceived(this, e);
MOTDReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a private message received. This can be a channel OR a user message.
@ -467,7 +462,7 @@ namespace ChatSharp
public event EventHandler<PrivateMessageEventArgs> PrivateMessageReceived;
internal void OnPrivateMessageReceived(PrivateMessageEventArgs e)
{
if (PrivateMessageReceived != null) PrivateMessageReceived(this, e);
PrivateMessageReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a message is received in an IRC channel.
@ -475,7 +470,7 @@ namespace ChatSharp
public event EventHandler<PrivateMessageEventArgs> ChannelMessageReceived;
internal void OnChannelMessageReceived(PrivateMessageEventArgs e)
{
if (ChannelMessageReceived != null) ChannelMessageReceived(this, e);
ChannelMessageReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a message is received from a user.
@ -483,7 +478,7 @@ namespace ChatSharp
public event EventHandler<PrivateMessageEventArgs> UserMessageReceived;
internal void OnUserMessageReceived(PrivateMessageEventArgs e)
{
if (UserMessageReceived != null) UserMessageReceived(this, e);
UserMessageReceived?.Invoke(this, e);
}
/// <summary>
/// Raised if the nick you've chosen is in use. By default, ChatSharp will pick a
@ -492,7 +487,7 @@ namespace ChatSharp
public event EventHandler<ErronousNickEventArgs> NickInUse;
internal void OnNickInUse(ErronousNickEventArgs e)
{
if (NickInUse != null) NickInUse(this, e);
NickInUse?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user or channel mode is changed.
@ -500,7 +495,7 @@ namespace ChatSharp
public event EventHandler<ModeChangeEventArgs> ModeChanged;
internal void OnModeChanged(ModeChangeEventArgs e)
{
if (ModeChanged != null) ModeChanged(this, e);
ModeChanged?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user joins a channel.
@ -508,7 +503,7 @@ namespace ChatSharp
public event EventHandler<ChannelUserEventArgs> UserJoinedChannel;
internal void OnUserJoinedChannel(ChannelUserEventArgs e)
{
if (UserJoinedChannel != null) UserJoinedChannel(this, e);
UserJoinedChannel?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user parts a channel.
@ -516,7 +511,7 @@ namespace ChatSharp
public event EventHandler<ChannelUserEventArgs> UserPartedChannel;
internal void OnUserPartedChannel(ChannelUserEventArgs e)
{
if (UserPartedChannel != null) UserPartedChannel(this, e);
UserPartedChannel?.Invoke(this, e);
}
/// <summary>
/// Occurs when we have received the list of users present in a channel.
@ -524,7 +519,7 @@ namespace ChatSharp
public event EventHandler<ChannelEventArgs> ChannelListReceived;
internal void OnChannelListReceived(ChannelEventArgs e)
{
if (ChannelListReceived != null) ChannelListReceived(this, e);
ChannelListReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when we have received the topic of a channel.
@ -532,7 +527,7 @@ namespace ChatSharp
public event EventHandler<ChannelTopicEventArgs> ChannelTopicReceived;
internal void OnChannelTopicReceived(ChannelTopicEventArgs e)
{
if (ChannelTopicReceived != null) ChannelTopicReceived(this, e);
ChannelTopicReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when the IRC connection is established and it is safe to begin interacting with the server.
@ -540,7 +535,7 @@ namespace ChatSharp
public event EventHandler<EventArgs> ConnectionComplete;
internal void OnConnectionComplete(EventArgs e)
{
if (ConnectionComplete != null) ConnectionComplete(this, e);
ConnectionComplete?.Invoke(this, e);
}
/// <summary>
/// Occurs when we receive server info (such as max nick length).
@ -548,7 +543,7 @@ namespace ChatSharp
public event EventHandler<SupportsEventArgs> ServerInfoReceived;
internal void OnServerInfoReceived(SupportsEventArgs e)
{
if (ServerInfoReceived != null) ServerInfoReceived(this, e);
ServerInfoReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user is kicked.
@ -556,7 +551,7 @@ namespace ChatSharp
public event EventHandler<KickEventArgs> UserKicked;
internal void OnUserKicked(KickEventArgs e)
{
if (UserKicked != null) UserKicked(this, e);
UserKicked?.Invoke(this, e);
}
/// <summary>
/// Occurs when a WHOIS response is received.
@ -564,7 +559,7 @@ namespace ChatSharp
public event EventHandler<WhoIsReceivedEventArgs> WhoIsReceived;
internal void OnWhoIsReceived(WhoIsReceivedEventArgs e)
{
if (WhoIsReceived != null) WhoIsReceived(this, e);
WhoIsReceived?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user has changed their nick.
@ -572,7 +567,7 @@ namespace ChatSharp
public event EventHandler<NickChangedEventArgs> NickChanged;
internal void OnNickChanged(NickChangedEventArgs e)
{
if (NickChanged != null) NickChanged(this, e);
NickChanged?.Invoke(this, e);
}
/// <summary>
/// Occurs when a user has quit.
@ -580,7 +575,7 @@ namespace ChatSharp
public event EventHandler<UserEventArgs> UserQuit;
internal void OnUserQuit(UserEventArgs e)
{
if (UserQuit != null) UserQuit(this, e);
UserQuit?.Invoke(this, e);
}
/// <summary>
/// Occurs when a WHO (WHOX protocol) is received.

View File

@ -40,12 +40,12 @@ namespace ChatSharp
public IrcMessage(string rawMessage)
{
RawMessage = rawMessage;
Tags = new KeyValuePair<string, string>[] { };
Tags = System.Array.Empty<KeyValuePair<string, string>>();
if (rawMessage.StartsWith("@"))
{
var rawTags = rawMessage.Substring(1, rawMessage.IndexOf(' ') - 1);
rawMessage = rawMessage.Substring(rawMessage.IndexOf(' ') + 1);
var rawTags = rawMessage[1..rawMessage.IndexOf(' ')];
rawMessage = rawMessage[(rawMessage.IndexOf(' ') + 1)..];
// Parse tags as key value pairs
var tags = new List<KeyValuePair<string, string>>();
@ -53,12 +53,12 @@ namespace ChatSharp
{
var replacedTag = rawTag.Replace(@"\:", ";");
// The spec declares `@a=` as a tag with an empty value, while `@b;` as a tag with a null value
KeyValuePair<string, string> tag = new KeyValuePair<string, string>(replacedTag, null);
KeyValuePair<string, string> tag = new(replacedTag, null);
if (replacedTag.Contains("="))
{
string key = replacedTag.Substring(0, replacedTag.IndexOf("="));
string value = replacedTag.Substring(replacedTag.IndexOf("=") + 1);
string value = replacedTag[(replacedTag.IndexOf("=") + 1)..];
tag = new KeyValuePair<string, string>(key, value);
}
@ -70,21 +70,21 @@ namespace ChatSharp
if (rawMessage.StartsWith(":"))
{
Prefix = rawMessage.Substring(1, rawMessage.IndexOf(' ') - 1);
rawMessage = rawMessage.Substring(rawMessage.IndexOf(' ') + 1);
Prefix = rawMessage[1..rawMessage.IndexOf(' ')];
rawMessage = rawMessage[(rawMessage.IndexOf(' ') + 1)..];
}
if (rawMessage.Contains(' '))
{
Command = rawMessage.Remove(rawMessage.IndexOf(' '));
rawMessage = rawMessage.Substring(rawMessage.IndexOf(' ') + 1);
rawMessage = rawMessage[(rawMessage.IndexOf(' ') + 1)..];
// Parse parameters
var parameters = new List<string>();
while (!string.IsNullOrEmpty(rawMessage))
{
if (rawMessage.StartsWith(":"))
{
parameters.Add(rawMessage.Substring(1));
parameters.Add(rawMessage[1..]);
break;
}
if (!rawMessage.Contains(' '))
@ -94,7 +94,7 @@ namespace ChatSharp
break;
}
parameters.Add(rawMessage.Remove(rawMessage.IndexOf(' ')));
rawMessage = rawMessage.Substring(rawMessage.IndexOf(' ') + 1);
rawMessage = rawMessage[(rawMessage.IndexOf(' ') + 1)..];
}
Parameters = parameters.ToArray();
}
@ -102,7 +102,7 @@ namespace ChatSharp
{
// Violates RFC 1459, but we'll parse it anyway
Command = rawMessage;
Parameters = new string[0];
Parameters = System.Array.Empty<string>();
}
// Parse server-time message tag.

View File

@ -13,7 +13,7 @@ namespace ChatSharp
internal IrcProtocolException(string message) : base(message)
{
}
}
}

View File

@ -1,5 +1,4 @@
using System;
using System.Linq;
using System.Collections.Generic;
namespace ChatSharp
@ -179,8 +178,8 @@ namespace ChatSharp
/// </summary>
public override bool Equals(object obj)
{
if (obj is IrcUser)
return Equals((IrcUser)obj);
if (obj is IrcUser user)
return Equals(user);
return false;
}

View File

@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp
{
@ -22,7 +21,7 @@ namespace ChatSharp
/// </summary>
public char? GetModeForPrefix(char prefix)
{
if (Prefixes[1].IndexOf(prefix) == -1)
if (!Prefixes[1].Contains(prefix))
return null;
return Prefixes[0][Prefixes[1].IndexOf(prefix)];
}
@ -35,14 +34,14 @@ namespace ChatSharp
public List<char?> GetModesForNick(string nick)
{
var supportedPrefixes = Prefixes[1];
List<char?> modeList = new List<char?>();
List<char> nickPrefixes = new List<char>();
List<char?> modeList = new();
List<char> nickPrefixes = new();
foreach (char prefix in supportedPrefixes)
{
if (nick.Contains(prefix))
{
nick.Remove(nick.IndexOf(prefix));
_ = nick.Remove(nick.IndexOf(prefix));
if (!nickPrefixes.Contains(prefix))
{
nickPrefixes.Add(prefix);

View File

@ -16,7 +16,7 @@ namespace ChatSharp
/// A unix epoch representation of the timestamp.
/// </summary>
public double UnixTimestamp { get; internal set; }
/// <summary>
/// Initializes and parses the timestamp received from the server.
/// </summary>
@ -41,7 +41,7 @@ namespace ChatSharp
throw new ArgumentException("The timestamp string was provided in an invalid format.", date);
UnixTimestamp = parsedTimestamp;
Date = (new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(UnixTimestamp));
Date = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(UnixTimestamp);
}
}
@ -58,8 +58,8 @@ namespace ChatSharp
/// </summary>
public override bool Equals(object obj)
{
if (obj is Timestamp)
return Equals((Timestamp)obj);
if (obj is Timestamp timestamp)
return Equals(timestamp);
return false;
}

View File

@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp

View File

@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
namespace ChatSharp

View File

@ -10,7 +10,7 @@ namespace ChatSharp
{
User = new IrcUser();
SecondsIdle = -1;
Channels = new string[0];
Channels = System.Array.Empty<string>();
}
/// <summary>

View File

@ -1,6 +1,4 @@
using System;
using System.Collections.Generic;
using System.Net;
namespace ChatSharp
{
/// <summary>

View File

@ -1,74 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props')" />
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{24D593EC-CA81-41DC-9FE7-A434DDDE229D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ChatSharp.Tests</RootNamespace>
<AssemblyName>ChatSharp.Tests</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
<IsCodedUITest>False</IsCodedUITest>
<TestProjectType>UnitTest</TestProjectType>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TargetFramework>net5.0</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.1.1.11\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.1.1.11\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<ProjectReference Include="..\ChatSharp\ChatSharp.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Include="IrcMessageTests.cs" />
<Compile Include="IrcUserTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.*" />
<PackageReference Include="MSTest.TestAdapter" Version="2.2.7" />
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.3.246501">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="MSTest.TestFramework" Version="2.2.7" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ChatSharp\ChatSharp.csproj">
<Project>{4033affa-bea3-4bdf-84ea-59a23360fd36}</Project>
<Name>ChatSharp</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.targets'))" />
</Target>
<Import Project="..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTest.TestAdapter.targets')" />
</Project>

View File

@ -1,6 +1,5 @@
using System;
using ChatSharp;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
namespace ChatSharp.Tests
@ -13,7 +12,7 @@ namespace ChatSharp.Tests
{
try
{
IrcMessage fromMessage = new IrcMessage(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
}
catch (Exception e)
{
@ -24,21 +23,21 @@ namespace ChatSharp.Tests
[TestMethod]
public void NewValidMessage_Command()
{
IrcMessage fromMessage = new IrcMessage(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
Assert.AreEqual(fromMessage.Command, "PRIVMSG");
}
[TestMethod]
public void NewValidMessage_Prefix()
{
IrcMessage fromMessage = new IrcMessage(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
Assert.AreEqual(fromMessage.Prefix, "user!~ident@host");
}
[TestMethod]
public void NewValidMessage_Params()
{
IrcMessage fromMessage = new IrcMessage(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new(@":user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
string[] compareParams = new string[] { "target", "Lorem ipsum dolor sit amet" };
CollectionAssert.AreEqual(fromMessage.Parameters, compareParams);
}
@ -46,7 +45,7 @@ namespace ChatSharp.Tests
[TestMethod]
public void NewValidMessage_Tags()
{
IrcMessage fromMessage = new IrcMessage("@a=123;b=456;c=789 :user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new("@a=123;b=456;c=789 :user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
KeyValuePair<string, string>[] compareTags = new KeyValuePair<string, string>[]
{
new KeyValuePair<string, string>("a", "123"),
@ -59,11 +58,11 @@ namespace ChatSharp.Tests
[TestMethod]
public void NewValidMessage_Tags02()
{
IrcMessage fromMessage = new IrcMessage("@aaa=bbb;ccc;example.com/ddd=eee :nick!ident@host.com PRIVMSG me :Hello");
IrcMessage fromMessage = new("@aaa=bbb;ccc;example.com/ddd=eee :nick!ident@host.com PRIVMSG me :Hello");
KeyValuePair<string, string>[] compareTags = new KeyValuePair<string, string>[]
{
new KeyValuePair<string, string>("aaa", "bbb"),
new KeyValuePair<string, string>("ccc", ""),
new KeyValuePair<string, string>("ccc", null),
new KeyValuePair<string, string>("example.com/ddd", "eee"),
};
CollectionAssert.AreEqual(fromMessage.Tags, compareTags);
@ -72,7 +71,7 @@ namespace ChatSharp.Tests
[TestMethod]
public void NewValidMessage_TagsWithSemicolon()
{
IrcMessage fromMessage = new IrcMessage(@"@a=123\:456;b=456\:789;c=789\:123 :user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
IrcMessage fromMessage = new(@"@a=123\:456;b=456\:789;c=789\:123 :user!~ident@host PRIVMSG target :Lorem ipsum dolor sit amet");
KeyValuePair<string, string>[] compareTags = new KeyValuePair<string, string>[]
{
new KeyValuePair<string, string>("a", "123;456"),
@ -85,7 +84,7 @@ namespace ChatSharp.Tests
[TestMethod]
public void NewValidMessage_TagsNoValue()
{
IrcMessage fromMessage = new IrcMessage("@a=;b :nick!ident@host.com PRIVMSG me :Hello");
IrcMessage fromMessage = new("@a=;b :nick!ident@host.com PRIVMSG me :Hello");
KeyValuePair<string, string>[] compareTags = new KeyValuePair<string, string>[]
{
new KeyValuePair<string, string>("a", ""),

View File

@ -1,6 +1,4 @@
using System;
using ChatSharp;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace ChatSharp.Tests
{
@ -10,8 +8,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_NotNull_FiveModes()
{
IrcUser user = new IrcUser("~&@%+aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("~&@%+aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);
@ -21,8 +19,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_NotNull_FourModes()
{
IrcUser user = new IrcUser("&@%+aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("&@%+aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);
@ -32,8 +30,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_NotNull_ThreeModes()
{
IrcUser user = new IrcUser("@%+aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("@%+aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);
@ -43,8 +41,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_NotNull_TwoModes()
{
IrcUser user = new IrcUser("%+aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("%+aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);
@ -54,8 +52,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_NotNull_OneMode()
{
IrcUser user = new IrcUser("+aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("+aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);
@ -65,8 +63,8 @@ namespace ChatSharp.Tests
[TestMethod]
public void GetUserModes_IsNull()
{
IrcUser user = new IrcUser("aji", "user");
IrcClient client = new IrcClient("irc.address", user);
IrcUser user = new("aji", "user");
IrcClient client = new("irc.address", user);
var userModes = client.ServerInfo.GetModesForNick(user.Nick);

View File

@ -1,5 +1,4 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ChatSharpTests")]

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MSTest.TestAdapter" version="1.1.11" targetFramework="net452" />
<package id="MSTest.TestFramework" version="1.1.11" targetFramework="net452" />
</packages>