Filtration/Filtration.ThemeEditor.Tests/Services/TestThemeService.cs

68 lines
2.7 KiB
C#

using System.Windows.Media;
using Filtration.ObjectModel;
using Filtration.ObjectModel.BlockItemTypes;
using Filtration.ObjectModel.Enums;
using Filtration.ObjectModel.ThemeEditor;
using Filtration.ThemeEditor.Services;
using NUnit.Framework;
namespace Filtration.ThemeEditor.Tests.Services
{
[TestFixture]
public class TestThemeService
{
[Test]
public void ApplyThemeToScript_SingleBlock_ReplacesColor()
{
// Arrange
var testInputBlockItem = new TextColorBlockItem();
var testInputBlock = new ItemFilterBlock();
testInputBlock.BlockItems.Add(testInputBlockItem);
var testInputScript = new ItemFilterScript();
testInputScript.ItemFilterBlocks.Add(testInputBlock);
var testInputTheme = new Theme();
var testInputThemeComponentColor = new Color{ R = 255, G = 0, B = 1 };
var testInputThemeComponent = new ThemeComponent(ThemeComponentType.TextColor, "Test Component 1", testInputThemeComponentColor);
testInputTheme.Components.Add(testInputThemeComponent);
testInputBlockItem.ThemeComponent = testInputThemeComponent;
var service = new ThemeService();
// Act
service.ApplyThemeToScript(testInputTheme, testInputScript);
// Assert
Assert.AreEqual(testInputThemeComponentColor, testInputBlockItem.Color);
}
[Test]
public void ApplyThemeToScript_SingleBlockDifferentComponentName_DoesNotReplaceColour()
{
// Arrange
var testInputBlockItem = new TextColorBlockItem();
var testInputBlock = new ItemFilterBlock();
testInputBlock.BlockItems.Add(testInputBlockItem);
var testInputScript = new ItemFilterScript();
testInputScript.ItemFilterBlocks.Add(testInputBlock);
var testInputTheme = new Theme();
var testInputThemeComponentColor = new Color { R = 255, G = 0, B = 1 };
var testInputThemeComponent = new ThemeComponent(ThemeComponentType.TextColor, "Test Component 1", testInputThemeComponentColor);
var testInputBlockItemThemeComponent = new ThemeComponent(ThemeComponentType.TextColor, "Different Component", testInputThemeComponentColor);
testInputTheme.Components.Add(testInputThemeComponent);
testInputBlockItem.ThemeComponent = testInputBlockItemThemeComponent;
var service = new ThemeService();
// Act
service.ApplyThemeToScript(testInputTheme, testInputScript);
// Assert
Assert.AreNotEqual(testInputThemeComponentColor, testInputBlockItem.Color);
}
}
}