geekbot/Tests/UnitTest1.cs
2017-04-27 12:08:24 +02:00

52 lines
No EOL
1.8 KiB
C#
Executable file

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using FluentAssertions;
using Geekbot.net.Lib;
using Geekbot.net.Modules;
using Moq;
using RestSharp;
using Xunit;
namespace Tests
{
public class UnitTest1
{
[Fact]
public async Task TestCat()
{
// setup
var catClient = new Mock<ICatClient>(MockBehavior.Strict);
var client = new Mock<IRestClient>(MockBehavior.Strict);
catClient.Setup(cc => cc.Client).Returns(client.Object);
var response = new Mock<IRestResponse<Cat.CatResponse>>(MockBehavior.Strict);
var resultData = new Cat.CatResponse {file = "unit-test"};
response.SetupGet(r => r.Data).Returns(resultData);
Console.WriteLine(resultData.file);
var request = new Mock<IRestRequest>(MockBehavior.Strict);
Func<IRestRequest> requestFunc = () => request.Object;
client.Setup(c => c.Execute<Cat.CatResponse>(request.Object)).Returns(response.Object);
Mock<AsyncReplier> asyncReplier = new Mock<AsyncReplier>(MockBehavior.Strict);
asyncReplier.Setup(ar => ar.ReplyAsyncInt(resultData.file)).Returns(Task.FromResult(true)).Verifiable();
// execute
//var cat = new Cat(catClient.Object, requestFunc, asyncReplier.Object);
//await cat.Say();
// validate
//asyncReplier.Verify();
}
[Theory]
[InlineData(1, 0)]
[InlineData(33, 4561)]
[InlineData(79, 449702)]
[InlineData(79, 449702 + 1)]
public void TestLevel(int expectedIndex, int experience)
{
var index = LevelCalc.GetLevelAtExperience(experience);
index.Should().Be(expectedIndex);
}
}
}