public void ReplaceAudioVisualBlockItemsFromString_MultipleLines_ExistingBlockItems()
        {
            // Arrange
            var testInputString = "SetTextColor 240 200 150 # Rarest Currency" + Environment.NewLine +
                                  "SetBackgroundColor 0 0 0 # Rarest Currency Background" + Environment.NewLine +
                                  "SetBorderColor 255 255 255 # Rarest Currency Border" + Environment.NewLine +
                                  "PlayAlertSound 7 280";

            var testInputBlockItems = new ObservableCollection<IItemFilterBlockItem>();
            var testInputTextColorBlockItem = new TextColorBlockItem(Colors.Red);
            var testInputBackgroundColorBlockItem = new BackgroundColorBlockItem(Colors.Blue);
            var testInputBorderColorBlockItem = new BorderColorBlockItem(Colors.Yellow);
            var testInputSoundBlockItem = new SoundBlockItem(1, 1);

            testInputBlockItems.Add(testInputTextColorBlockItem);
            testInputBlockItems.Add(testInputBackgroundColorBlockItem);
            testInputBlockItems.Add(testInputBorderColorBlockItem);
            testInputBlockItems.Add(testInputSoundBlockItem);

            // Act
            _testUtility.Translator.ReplaceAudioVisualBlockItemsFromString(testInputBlockItems, testInputString);

            // Assert
            var textColorBlockItem = testInputBlockItems.First(b => b is TextColorBlockItem) as TextColorBlockItem;
            Assert.IsNotNull(textColorBlockItem);
            Assert.AreNotSame(testInputTextColorBlockItem, textColorBlockItem);
            Assert.AreEqual(new Color {A = 255, R = 240, G = 200, B = 150}, textColorBlockItem.Color);

            var backgroundColorBlockItem = testInputBlockItems.First(b => b is BackgroundColorBlockItem) as BackgroundColorBlockItem;
            Assert.IsNotNull(backgroundColorBlockItem);
            Assert.AreNotSame(testInputBackgroundColorBlockItem, backgroundColorBlockItem);
            Assert.AreEqual(new Color { A = 255, R = 0, G = 0, B = 0 }, backgroundColorBlockItem.Color);

            var borderColorBlockItem = testInputBlockItems.First(b => b is BorderColorBlockItem) as BorderColorBlockItem;
            Assert.IsNotNull(borderColorBlockItem);
            Assert.AreNotSame(testInputBorderColorBlockItem, borderColorBlockItem);
            Assert.AreEqual(new Color { A = 255, R = 255, G = 255, B = 255 }, borderColorBlockItem.Color);

            var soundBlockItem = testInputBlockItems.First(b => b is SoundBlockItem) as SoundBlockItem;
            Assert.IsNotNull(soundBlockItem);
            Assert.AreNotSame(testInputSoundBlockItem, soundBlockItem);
            Assert.AreEqual(7, soundBlockItem.Value);
            Assert.AreEqual(280, soundBlockItem.SecondValue);
        }
        public void ReplaceAudioVisualBlockItemsFromString_SingleLine_ReplacesSoundBlockItem()
        {
            // Arrange
            var testInputString = "PlayAlertSound 7 280";

            var testInputBlockItems = new ObservableCollection<IItemFilterBlockItem>();
            var testInputBlockItem = new SoundBlockItem(12,30);
            testInputBlockItems.Add(testInputBlockItem);

            // Act
            _testUtility.Translator.ReplaceAudioVisualBlockItemsFromString(testInputBlockItems, testInputString);

            // Assert
            var soundBlockItem = testInputBlockItems.First(b => b is SoundBlockItem) as SoundBlockItem;
            Assert.IsNotNull(soundBlockItem);
            Assert.AreNotSame(testInputBlockItem, soundBlockItem);
            Assert.AreEqual(7, soundBlockItem.Value);
            Assert.AreEqual(280, soundBlockItem.SecondValue);
        }