public void AddSuffix_Empty_DoesNothing()
        {
            // Arrange
            var name        = "Char_Hero_Spawn";
            var addStringOp = new AddStringOperation();

            addStringOp.Suffix = string.Empty;

            var expected = new RenameResult()
            {
                new Diff("Char_Hero_Spawn", DiffOperation.Equal)
            };

            // Act
            var result = addStringOp.Rename(name, 0);

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void AddPrefix_NullTarget_Adds()
        {
            // Arrange
            string name        = null;
            var    addStringOp = new AddStringOperation();

            addStringOp.Prefix = "Pre";

            var expected = new RenameResult()
            {
                new Diff("Pre", DiffOperation.Insertion)
            };

            // Act
            var result = addStringOp.Rename(name, 0);

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void AddPrefix_ValidPrefix_IsAdded()
        {
            // Arrange
            var name        = "Hero_Spawn";
            var addStringOp = new AddStringOperation();

            addStringOp.Prefix = "Char_";

            var expected = new RenameResult()
            {
                new Diff("Char_", DiffOperation.Insertion),
                new Diff("Hero_Spawn", DiffOperation.Equal)
            };

            // Act
            var result = addStringOp.Rename(name, 0);

            // Assert
            Assert.AreEqual(expected, result);
        }
        public void GetNewName_AllOperations_RenamesCorrectly()
        {
            // Arrange
            var name = "Char_Hero_Idle";

            var trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = 1;
            trimCharactersOp.NumBackDeleteChars  = 5;

            var replaceStringOp = new ReplaceStringOperation();

            replaceStringOp.SearchString      = "r_H";
            replaceStringOp.ReplacementString = "t_Z";

            var addStringOp = new AddStringOperation();

            addStringOp.Prefix = "a_";
            addStringOp.Suffix = "AA";

            var enumerateOp = new EnumerateOperation();

            enumerateOp.SetCountFormat("D4");
            enumerateOp.StartingCount = 100;

            var operationSequence = new RenameOperationSequence <IRenameOperation>();

            operationSequence.Add(trimCharactersOp);
            operationSequence.Add(replaceStringOp);
            operationSequence.Add(addStringOp);
            operationSequence.Add(enumerateOp);

            var expected = "a_hat_ZeroAA0100";

            // Act
            string result = operationSequence.GetResultingName(name, 0);

            // Assert
            Assert.AreEqual(expected, result);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="AddStringOperation"/> class.
 /// This is a clone constructor, copying the values from one to another.
 /// </summary>
 /// <param name="operationToCopy">Operation to copy.</param>
 public AddStringOperation(AddStringOperation operationToCopy)
 {
     this.Prefix = operationToCopy.Prefix;
     this.Suffix = operationToCopy.Suffix;
 }
        /// <summary>
        /// Clone this instance.
        /// </summary>
        /// <returns>A clone of this instance</returns>
        public override RenameOperation Clone()
        {
            var clone = new AddStringOperation(this);

            return(clone);
        }