Example #1
0
        /// <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());
        }
Example #2
0
        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);
        }