/// <summary> /// Turns a merge consignment and options into code /// </summary> /// <param name="mergeConsignment">The merger details</param> /// <param name="mergeOptions">Options for the code merger</param> /// <returns>Merged code</returns> public static string Merge(MergeConsignment mergeConsignment, MergeOptions mergeOptions) { var stringBuilder = new StringBuilder(); foreach (var mergeItems in mergeConsignment.MergeItems) { stringBuilder.Append(MergeItem(mergeConsignment.CodeInput, mergeItems, mergeOptions)); } return(stringBuilder.ToString()); }
public void CodeMergeConsignmentWithSimpleConsignmentAndDefaultOptionsShallSucceed() { //Setup var inputCode = @"public TYPE PROP; "; var expectedOutputCode = @"public string Name; public int Id; "; var mergeConsignment = new MergeConsignment { CodeInput = inputCode, MergeItems = new List <MergeItem> { new MergeItem { MergeParings = new List <MergePairing> { new MergePairing { SwapValue = "PROP", InputValue = "Name" }, new MergePairing { SwapValue = "TYPE", InputValue = "string" } } }, new MergeItem { MergeParings = new List <MergePairing> { new MergePairing { SwapValue = "PROP", InputValue = "Id" }, new MergePairing { SwapValue = "TYPE", InputValue = "int" } } } } }; var mergeOptions = new MergeOptions();//Default //Exercise var actualCodeOutput = MergeHelper.Merge(mergeConsignment, mergeOptions); //Verify Assert.AreEqual(expectedOutputCode, actualCodeOutput, "The actual code output is not what was expected: " + actualCodeOutput); }