[Fix] Refactor project
This commit is contained in:
@@ -14,41 +14,41 @@ namespace YachtDice.Tests
|
||||
{
|
||||
public class ModifierPipelineTests
|
||||
{
|
||||
private ModifierRegistry registry;
|
||||
private ModifierPipeline pipeline;
|
||||
private ModifierRegistry _registry;
|
||||
private ModifierPipeline _pipeline;
|
||||
|
||||
// Тестовые категории
|
||||
private CategoryDefinition chanceCategory;
|
||||
private CategoryDefinition fullHouseCategory;
|
||||
private CategoryDefinition onesCategory;
|
||||
private CategoryDefinition threesCategory;
|
||||
private CategoryDefinition foursCategory;
|
||||
private CategoryDefinition sixesCategory;
|
||||
private CategoryDefinition _chanceCategory;
|
||||
private CategoryDefinition _fullHouseCategory;
|
||||
private CategoryDefinition _onesCategory;
|
||||
private CategoryDefinition _threesCategory;
|
||||
private CategoryDefinition _foursCategory;
|
||||
private CategoryDefinition _sixesCategory;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
registry = new ModifierRegistry(10);
|
||||
pipeline = new ModifierPipeline(registry);
|
||||
pipeline.TracingEnabled = false;
|
||||
_registry = new ModifierRegistry(10);
|
||||
_pipeline = new ModifierPipeline(_registry);
|
||||
_pipeline.TracingEnabled = false;
|
||||
|
||||
chanceCategory = SumAllCategory.CreateForTest("chance", "Шанс");
|
||||
fullHouseCategory = FullHouseCategory.CreateForTest("full_house", "Фулл-хаус");
|
||||
onesCategory = SumOfValueCategory.CreateForTest("ones", "Единицы", 1);
|
||||
threesCategory = SumOfValueCategory.CreateForTest("threes", "Тройки", 3);
|
||||
foursCategory = SumOfValueCategory.CreateForTest("fours", "Четвёрки", 4);
|
||||
sixesCategory = SumOfValueCategory.CreateForTest("sixes", "Шестёрки", 6);
|
||||
_chanceCategory = SumAllCategory.CreateForTest("chance", "Шанс");
|
||||
_fullHouseCategory = FullHouseCategory.CreateForTest("full_house", "Фулл-хаус");
|
||||
_onesCategory = SumOfValueCategory.CreateForTest("ones", "Единицы", 1);
|
||||
_threesCategory = SumOfValueCategory.CreateForTest("threes", "Тройки", 3);
|
||||
_foursCategory = SumOfValueCategory.CreateForTest("fours", "Четвёрки", 4);
|
||||
_sixesCategory = SumOfValueCategory.CreateForTest("sixes", "Шестёрки", 6);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
Object.DestroyImmediate(chanceCategory);
|
||||
Object.DestroyImmediate(fullHouseCategory);
|
||||
Object.DestroyImmediate(onesCategory);
|
||||
Object.DestroyImmediate(threesCategory);
|
||||
Object.DestroyImmediate(foursCategory);
|
||||
Object.DestroyImmediate(sixesCategory);
|
||||
Object.DestroyImmediate(_chanceCategory);
|
||||
Object.DestroyImmediate(_fullHouseCategory);
|
||||
Object.DestroyImmediate(_onesCategory);
|
||||
Object.DestroyImmediate(_threesCategory);
|
||||
Object.DestroyImmediate(_foursCategory);
|
||||
Object.DestroyImmediate(_sixesCategory);
|
||||
}
|
||||
|
||||
private ModifierDefinition CreateDef(string id,
|
||||
@@ -63,8 +63,8 @@ namespace YachtDice.Tests
|
||||
|
||||
private void RegisterAndActivate(ModifierDefinition def)
|
||||
{
|
||||
var inst = registry.Add(def);
|
||||
registry.TryActivate(inst);
|
||||
var inst = _registry.Add(def);
|
||||
_registry.TryActivate(inst);
|
||||
}
|
||||
|
||||
private ModifierContext CreateScoringContext(int baseScore, int[] dice, CategoryDefinition category)
|
||||
@@ -74,7 +74,7 @@ namespace YachtDice.Tests
|
||||
BaseScore = baseScore,
|
||||
DiceValues = dice,
|
||||
Category = category,
|
||||
AllActiveModifiers = registry.Active,
|
||||
AllActiveModifiers = _registry.Active,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -94,8 +94,8 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(mulDef);
|
||||
RegisterAndActivate(addDef);
|
||||
|
||||
var ctx = CreateScoringContext(20, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(20, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
// (20 + 10) * 2 = 60
|
||||
Assert.AreEqual(60, result.FinalScore);
|
||||
@@ -115,8 +115,8 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(postDef);
|
||||
RegisterAndActivate(mulDef);
|
||||
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
// (10 + 0) * 2 * 3 = 60
|
||||
Assert.AreEqual(60, result.FinalScore);
|
||||
@@ -127,7 +127,7 @@ namespace YachtDice.Tests
|
||||
[Test]
|
||||
public void Execute_ConditionFails_SkipsEffect()
|
||||
{
|
||||
var condition = CategoryCondition.CreateForTest(fullHouseCategory);
|
||||
var condition = CategoryCondition.CreateForTest(_fullHouseCategory);
|
||||
var effect = AddFlatScoreEffect.CreateForTest(100);
|
||||
|
||||
var def = CreateDef("fh-bonus", TriggerType.OnCategoryScored,
|
||||
@@ -137,8 +137,8 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(def);
|
||||
|
||||
// Scoring Ones, not FullHouse — condition should fail
|
||||
var ctx = CreateScoringContext(5, new[] { 1, 1, 1, 1, 1 }, onesCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(5, new[] { 1, 1, 1, 1, 1 }, _onesCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(0, result.FlatBonus);
|
||||
Assert.AreEqual(5, result.FinalScore);
|
||||
@@ -147,7 +147,7 @@ namespace YachtDice.Tests
|
||||
[Test]
|
||||
public void Execute_ConditionPasses_AppliesEffect()
|
||||
{
|
||||
var condition = CategoryCondition.CreateForTest(fullHouseCategory);
|
||||
var condition = CategoryCondition.CreateForTest(_fullHouseCategory);
|
||||
var effect = AddFlatScoreEffect.CreateForTest(15);
|
||||
|
||||
var def = CreateDef("fh-bonus", TriggerType.OnCategoryScored,
|
||||
@@ -156,8 +156,8 @@ namespace YachtDice.Tests
|
||||
|
||||
RegisterAndActivate(def);
|
||||
|
||||
var ctx = CreateScoringContext(25, new[] { 3, 3, 3, 2, 2 }, fullHouseCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(25, new[] { 3, 3, 3, 2, 2 }, _fullHouseCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(15, result.FlatBonus);
|
||||
Assert.AreEqual(40, result.FinalScore);
|
||||
@@ -174,8 +174,8 @@ namespace YachtDice.Tests
|
||||
|
||||
RegisterAndActivate(def);
|
||||
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(0, result.FlatBonus);
|
||||
Assert.AreEqual(10, result.FinalScore);
|
||||
@@ -206,8 +206,8 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(def1);
|
||||
|
||||
// dice: [3, 3, 3, 1, 2] — 3 threes
|
||||
var ctx = CreateScoringContext(9, new[] { 3, 3, 3, 1, 2 }, threesCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(9, new[] { 3, 3, 3, 1, 2 }, _threesCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(16, result.FlatBonus);
|
||||
Assert.AreEqual(168, result.FinalScore);
|
||||
@@ -218,8 +218,8 @@ namespace YachtDice.Tests
|
||||
[Test]
|
||||
public void Execute_NoActiveModifiers_NoChange()
|
||||
{
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(10, result.FinalScore);
|
||||
Assert.AreEqual(0, result.FlatBonus);
|
||||
@@ -233,10 +233,10 @@ namespace YachtDice.Tests
|
||||
var def = CreateDef("inactive", TriggerType.OnCategoryScored, null,
|
||||
new List<Effect> { effect });
|
||||
|
||||
registry.Add(def);
|
||||
_registry.Add(def);
|
||||
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(0, result.FlatBonus);
|
||||
Assert.AreEqual(10, result.FinalScore);
|
||||
@@ -255,8 +255,8 @@ namespace YachtDice.Tests
|
||||
|
||||
RegisterAndActivate(def);
|
||||
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(10, result.FlatBonus);
|
||||
Assert.AreEqual(25, result.CurrencyDelta);
|
||||
@@ -268,7 +268,7 @@ namespace YachtDice.Tests
|
||||
[Test]
|
||||
public void Execute_TracingEnabled_PopulatesDebugLog()
|
||||
{
|
||||
pipeline.TracingEnabled = true;
|
||||
_pipeline.TracingEnabled = true;
|
||||
|
||||
var effect = AddFlatScoreEffect.CreateForTest(10);
|
||||
var def = CreateDef("traced", TriggerType.OnCategoryScored, null,
|
||||
@@ -276,8 +276,8 @@ namespace YachtDice.Tests
|
||||
|
||||
RegisterAndActivate(def);
|
||||
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.IsNotNull(result.DebugLog);
|
||||
Assert.IsTrue(result.DebugLog.Count > 0);
|
||||
@@ -298,14 +298,14 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(def);
|
||||
|
||||
// Only 2 sixes — condition requires 3
|
||||
var ctx = CreateScoringContext(12, new[] { 6, 6, 1, 2, 3 }, sixesCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(12, new[] { 6, 6, 1, 2, 3 }, _sixesCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(0, result.FlatBonus);
|
||||
|
||||
// 3 sixes — condition passes
|
||||
var ctx2 = CreateScoringContext(18, new[] { 6, 6, 6, 1, 2 }, sixesCategory);
|
||||
var result2 = pipeline.Execute(TriggerType.OnCategoryScored, ctx2).GetAwaiter().GetResult();
|
||||
var ctx2 = CreateScoringContext(18, new[] { 6, 6, 6, 1, 2 }, _sixesCategory);
|
||||
var result2 = _pipeline.Execute(TriggerType.OnCategoryScored, ctx2).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(100, result2.FlatBonus);
|
||||
}
|
||||
@@ -325,14 +325,14 @@ namespace YachtDice.Tests
|
||||
RegisterAndActivate(def);
|
||||
|
||||
// Below threshold
|
||||
var ctx = CreateScoringContext(15, new[] { 3, 3, 3, 3, 3 }, threesCategory);
|
||||
var result = pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
var ctx = CreateScoringContext(15, new[] { 3, 3, 3, 3, 3 }, _threesCategory);
|
||||
var result = _pipeline.Execute(TriggerType.OnCategoryScored, ctx).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(1f, result.Multiplier);
|
||||
|
||||
// At threshold
|
||||
var ctx2 = CreateScoringContext(20, new[] { 4, 4, 4, 4, 4 }, foursCategory);
|
||||
var result2 = pipeline.Execute(TriggerType.OnCategoryScored, ctx2).GetAwaiter().GetResult();
|
||||
var ctx2 = CreateScoringContext(20, new[] { 4, 4, 4, 4, 4 }, _foursCategory);
|
||||
var result2 = _pipeline.Execute(TriggerType.OnCategoryScored, ctx2).GetAwaiter().GetResult();
|
||||
|
||||
Assert.AreEqual(2f, result2.Multiplier);
|
||||
}
|
||||
@@ -342,7 +342,7 @@ namespace YachtDice.Tests
|
||||
[Test]
|
||||
public void ToScoreResult_ConvertsCorrectly()
|
||||
{
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, chanceCategory);
|
||||
var ctx = CreateScoringContext(10, new[] { 1, 2, 3, 4, 5 }, _chanceCategory);
|
||||
ctx.FlatBonus = 5;
|
||||
ctx.Multiplier = 2f;
|
||||
ctx.PostMultiplier = 1.5f;
|
||||
@@ -352,7 +352,7 @@ namespace YachtDice.Tests
|
||||
Assert.AreEqual(10, sr.baseScore);
|
||||
Assert.AreEqual(5, sr.flatBonus);
|
||||
Assert.AreEqual(3f, sr.multiplier, 0.001f); // 2 * 1.5
|
||||
Assert.AreEqual(chanceCategory, sr.category);
|
||||
Assert.AreEqual(_chanceCategory, sr.category);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user