test
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using Unity.Multiplayer.Center.Common;
|
||||
using Unity.Multiplayer.Center.Questionnaire;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Unity.MultiplayerCenterTests
|
||||
{
|
||||
[TestFixture]
|
||||
class LogicTests
|
||||
{
|
||||
[Test]
|
||||
public void TryGetQuestionByQuestionId_IdExists_Found()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var success = Logic.TryGetQuestionByQuestionId(questionnaire, questionnaire.Questions[1].Id, out var question);
|
||||
Assert.True(success);
|
||||
Assert.NotNull(question);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TryGetQuestionByQuestionId_StringIdExists_Found()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var success = Logic.TryGetQuestionByQuestionId(questionnaire, "Pace", out var question);
|
||||
Assert.True(success);
|
||||
Assert.NotNull(question);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TryGetQuestionByQuestionId_IdDoesNotExist_NotFound()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var success = Logic.TryGetQuestionByQuestionId(questionnaire, "nonexistent", out var question);
|
||||
Assert.False(success);
|
||||
Assert.Null(question);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TryGetAnswerByQuestionId_IdExists_Found()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var userAnswers = UtilsForRecommendationTests.BuildAnswerMatching(questionnaire);
|
||||
var success = Logic.TryGetAnswerByQuestionId(userAnswers, "PlayerCount", out var answer);
|
||||
Assert.True(success);
|
||||
Assert.NotNull(answer);
|
||||
Assert.AreEqual(1, answer.Answers.Count);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TryGetAnswerByQuestionId_IdDoesNotExist_NotFound()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var userAnswers = UtilsForRecommendationTests.BuildAnswerMatching(questionnaire);
|
||||
var success = Logic.TryGetAnswerByQuestionId(userAnswers, "nonexistent", out var answer);
|
||||
Assert.False(success);
|
||||
Assert.Null(answer);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestApplyPresetToAnswerData_WhenPlayerCountIsSet_PlayerCountStays()
|
||||
{
|
||||
var questionnaire = UtilsForRecommendationTests.GetProjectQuestionnaire();
|
||||
var userAnswers = UtilsForRecommendationTests.BuildAnswerMatching(questionnaire);
|
||||
|
||||
Logic.TryGetAnswerByQuestionId(userAnswers, "PlayerCount", out var answer);
|
||||
var chosenPlayerCount = Int32.Parse(answer.Answers[0]);
|
||||
|
||||
// No default answer, otherwise this test could succeed even if the logic is wrong
|
||||
Assert.AreNotEqual(0, chosenPlayerCount);
|
||||
Assert.AreNotEqual(2, chosenPlayerCount);
|
||||
|
||||
var (newAnswer, newReco) = Logic.ApplyPresetToAnswerData(userAnswers, Preset.Strategy, questionnaire);
|
||||
Assert.NotNull(newAnswer);
|
||||
Logic.TryGetAnswerByQuestionId(newAnswer, "PlayerCount", out var newAnsweredQuestion);
|
||||
var newChosenPlayerCount = Int32.Parse(newAnsweredQuestion.Answers[0]);
|
||||
Assert.AreEqual(chosenPlayerCount, newChosenPlayerCount);
|
||||
Assert.NotNull(newReco);
|
||||
}
|
||||
|
||||
[TestCase("1.2", "1.3", true)]
|
||||
[TestCase("3.2", "1.3", false)]
|
||||
[TestCase("1.21", "1.2", false)]
|
||||
[TestCase("1.2", "1.2", false)]
|
||||
[TestCase("0.2", "1.3", true)]
|
||||
[TestCase("1.3.12", "1.3.13", true)]
|
||||
[TestCase("1.3.11", "0.23", false)]
|
||||
[TestCase("3.3.33", "3.3.33", false)]
|
||||
[TestCase("3.3.3", "3.3.33", true)]
|
||||
public void TestIsVersionLower_ReturnsCorrectResult(string versionToTest, string currentVersion, params bool[] expected)
|
||||
{
|
||||
var result = Logic.IsVersionLower(versionToTest, currentVersion);
|
||||
Assert.AreEqual(expected[0], result);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user