Browse Source

Begin Rewriting Unit Tests

Comment out Tests.cs (will delete later)
Build backend for Testing/Mock Rest Replies
pull/62/head
Christopher F 9 years ago
parent
commit
8f0d77749d
5 changed files with 103 additions and 11 deletions
  1. +7
    -1
      Discord.Net.sln
  2. +9
    -3
      test/Discord.Net.Tests/Discord.Net.Tests.csproj
  3. +32
    -0
      test/Discord.Net.Tests/Rest/EndpointHandler.cs
  4. +42
    -0
      test/Discord.Net.Tests/Rest/TestRestClient.cs
  5. +13
    -7
      test/Discord.Net.Tests/Tests.cs

+ 7
- 1
Discord.Net.sln View File

@@ -1,10 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.25123.0
VisualStudioVersion = 15.0.25302.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net", "src\Discord.Net\Discord.Net.csproj", "{18F6FE23-73F6-4CA6-BBD9-F0139DC3EE90}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Discord.Net.Tests", "test\Discord.Net.Tests\Discord.Net.Tests.csproj", "{855D6B1D-847B-42DA-BE6A-23683EA89511}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -15,6 +17,10 @@ Global
{18F6FE23-73F6-4CA6-BBD9-F0139DC3EE90}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18F6FE23-73F6-4CA6-BBD9-F0139DC3EE90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18F6FE23-73F6-4CA6-BBD9-F0139DC3EE90}.Release|Any CPU.Build.0 = Release|Any CPU
{855D6B1D-847B-42DA-BE6A-23683EA89511}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{855D6B1D-847B-42DA-BE6A-23683EA89511}.Debug|Any CPU.Build.0 = Debug|Any CPU
{855D6B1D-847B-42DA-BE6A-23683EA89511}.Release|Any CPU.ActiveCfg = Release|Any CPU
{855D6B1D-847B-42DA-BE6A-23683EA89511}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE


+ 9
- 3
test/Discord.Net.Tests/Discord.Net.Tests.csproj View File

@@ -55,6 +55,11 @@
</Otherwise>
</Choose>
<ItemGroup>
<Compile Include="Rest.cs" />
<Compile Include="Rest\EndpointHandler.cs" />
<Compile Include="Rest\Responses\Users\Me_Mocks.cs" />
<Compile Include="Rest\Responses\Users\UserHandlers.cs" />
<Compile Include="Rest\TestRestClient.cs" />
<Compile Include="Tests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
@@ -62,11 +67,12 @@
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Discord.Net\Discord.Net.Net45.csproj">
<Project>{c6a50d24-cbd3-4e76-852c-4dca60bbd608}</Project>
<Name>Discord.Net.Net45</Name>
<ProjectReference Include="..\..\src\Discord.Net\Discord.Net.csproj">
<Project>{18F6FE23-73F6-4CA6-BBD9-F0139DC3EE90}</Project>
<Name>Discord.Net</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Choose>
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<ItemGroup>


+ 32
- 0
test/Discord.Net.Tests/Rest/EndpointHandler.cs View File

@@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;

namespace Discord.Tests.Rest
{
public class EndpointHandler
{
public static EndpointHandler Instance;

public delegate string RestMessageHandler(string method, string json);

public Dictionary<string, RestMessageHandler> Handlers;

public EndpointHandler()
{
Instance = this;

// Setup Endpoints
Handlers = new Dictionary<string, RestMessageHandler>();

// /users Endpoints
Handlers.Add("users/@me", Responses.Users.UserHandlers.Me_Handler);
}

public string HandleMessage(string method, string endpoint, string json)
{
if (Handlers.ContainsKey(endpoint))
return Handlers[endpoint].Invoke(method, json);
throw new NotImplementedException($"{method} -> {endpoint} -> {json}");
}
}
}

+ 42
- 0
test/Discord.Net.Tests/Rest/TestRestClient.cs View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Discord.Rest;
using Discord.Net.Rest;
using System.Threading;
using System.IO;

namespace Discord.Tests.Rest
{
class TestRestClient : IRestClient
{
public static Dictionary<string, string> Headers = new Dictionary<string, string>();

public TestRestClient(string baseUrl, CancellationToken cancelToken)
{

}

Task<Stream> IRestClient.Send(string method, string endpoint, IReadOnlyDictionary<string, object> multipartParams)
{
throw new NotImplementedException("method only used for SendFile, not concerned with that yet.");
}

Task<Stream> IRestClient.Send(string method, string endpoint, string json)
{
return Task.FromResult<Stream>(new MemoryStream(Encoding.UTF8.GetBytes(EndpointHandler.Instance.HandleMessage(method, endpoint, json))));
}

void IRestClient.SetHeader(string key, string value)
{
if (Headers.ContainsKey(key))
{
Headers.Remove(key);
}
Headers.Add(key, value);
Console.WriteLine($"[Header Set]: {key} -> {value}");
}
}
}

+ 13
- 7
test/Discord.Net.Tests/Tests.cs View File

@@ -1,4 +1,5 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Discord.Rest;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -7,8 +8,11 @@ using System.Threading.Tasks;

namespace Discord.Tests
{
//TODO: Tests are massively incomplete and out of date, needing a full rewrite
// these tests are really bad
// we're never going to look at them again
// but in case i do decide to look at them again they are still here

/*
[TestClass]
public class Tests
{
@@ -311,8 +315,9 @@ namespace Discord.Tests
async () => await _targetBot.CurrentUser.Modify(TargetPassword, name),
x => _obGuildBot.UserUpdated += x,
x => _obGuildBot.UserUpdated -= x,
(s, e) => e.After.Username == name);*/
}
(s, e) => e.After.Username == name);
}*/
/*
[TestMethod]
public void TestSetStatus()
{
@@ -327,8 +332,9 @@ namespace Discord.Tests
{
throw new NotImplementedException();
/*_client.SetStatus(status);
await Task.Delay(50);*/
}
await Task.Delay(50);
}*/
/*
[TestMethod]
public void TestSetGame()
{
@@ -490,5 +496,5 @@ namespace Discord.Tests
}

#endregion
}
}*/
}

Loading…
Cancel
Save