public void GetNewName_ValidOperations_AreAppliedInOrder()
        {
            // Arrange
            var name = "Char_Hero_Idle";

            var replaceStringOp = new ReplaceStringOperation();

            replaceStringOp.SearchString      = "ar_He";
            replaceStringOp.ReplacementString = "baboon";

            var trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = 4;

            var operationSequence = new RenameOperationSequence <IRenameOperation>();

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

            var operationSequenceReversed = new RenameOperationSequence <IRenameOperation>();

            operationSequenceReversed.Add(trimCharactersOp);
            operationSequenceReversed.Add(replaceStringOp);

            var expected         = "boonro_Idle";
            var expectedReversed = "_Hero_Idle";

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

            // Assert
            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedReversed, resultReversed);
        }
Example #2
0
        public void Trimming_TargetIsNull_IsEmpty()
        {
            // Arrange
            string name             = null;
            var    trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = 1;

            var expected = RenameResult.Empty;

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

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #3
0
        public void Trimming_DeleteNone_IsUnchanged()
        {
            // Arrange
            var name             = "Char_Hero";
            var trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = 0;
            trimCharactersOp.NumBackDeleteChars  = 0;

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

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

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #4
0
        public void Trimming_DeleteTooManyFromBothDirections_EntireStringIsDeleted()
        {
            // Arrange
            var name             = "Char_Hero";
            var trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = name.Length;
            trimCharactersOp.NumBackDeleteChars  = name.Length;

            var expected = new RenameResult()
            {
                new Diff(name, DiffOperation.Deletion)
            };

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

            // Assert
            Assert.AreEqual(expected, result);
        }
Example #5
0
        public void Trimming_DeleteOneFromBack_IsDeleted()
        {
            // Arrange
            var name             = "Char_Hero";
            var trimCharactersOp = new TrimCharactersOperation();

            trimCharactersOp.NumFrontDeleteChars = 0;
            trimCharactersOp.NumBackDeleteChars  = 1;

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

            // Act
            var result = trimCharactersOp.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="TrimCharactersOperation"/> class.
 /// This is a clone constructor, copying the values from one to another.
 /// </summary>
 /// <param name="operationToCopy">Operation to copy.</param>
 public TrimCharactersOperation(TrimCharactersOperation operationToCopy)
 {
     this.NumFrontDeleteChars = operationToCopy.NumFrontDeleteChars;
     this.NumBackDeleteChars  = operationToCopy.NumBackDeleteChars;
 }
        /// <summary>
        /// Clone this instance.
        /// </summary>
        /// <returns>A clone of this instance</returns>
        public override RenameOperation Clone()
        {
            var clone = new TrimCharactersOperation(this);

            return(clone);
        }