public void GetCteListHasOnlyReverseCrossRefsDefinedInResult()
        {
            var queryGenerator = new SearchQueryGeneratorTest();

            queryGenerator.ReverseCrossReferences.Add(new ReferenceFieldDefinition { SystemName = "RCR1", Name = "RCRA1", ColumnType = ColumnTypes.ReverseReference, ReferenceField = new ReferenceJoinFieldDefinition()});
            queryGenerator.ReverseCrossReferences.Add(new ReferenceFieldDefinition { SystemName = "RCR2", Name = "RCRA2", ColumnType = ColumnTypes.ReverseReference, ReferenceField = new ReferenceJoinFieldDefinition() });
            queryGenerator.ResultColumns.Add("RCR1");
            queryGenerator.LimitResultColumns = true;

            var cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("RCR1"));
            Assert.IsFalse(cte.Contains("RCR2"));

            queryGenerator.ResultColumns.Clear();
            queryGenerator.ResultColumns.Add("RCRA1");

            cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("RCR1"));
            Assert.IsFalse(cte.Contains("RCR2"));
        }
        public void GetCteListHasOnlyMultiCrossRefsDefinedInResult()
        {
            var queryGenerator = new SearchQueryGeneratorTest();

            queryGenerator.MultiCrossReferences.Add(new ReferenceFieldDefinition { SystemName = "MCR1", Alias = "MCRA1", ColumnType = ColumnTypes.MultiReference });
            queryGenerator.MultiCrossReferences.Add(new ReferenceFieldDefinition { SystemName = "MCR2", Alias = "MCRA2", ColumnType = ColumnTypes.MultiReference });
            queryGenerator.ResultColumns.Add("MCR1");
            queryGenerator.LimitResultColumns = true;

            var cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("MCR1"));
            Assert.IsFalse(cte.Contains("MCR2"));

            queryGenerator.ResultColumns.Clear();
            queryGenerator.ResultColumns.Add("MCRA1");

            cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("MCR1"));
            Assert.IsFalse(cte.Contains("MCR2"));

            queryGenerator.ResultColumns.Clear();
            queryGenerator.ResultColumns.Add("MCR1" + Constants.MultipleIdsCrossRefPropertyInfoClass);

            cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("MCR1"));
            Assert.IsFalse(cte.Contains("MCR2"));

            queryGenerator.ResultColumns.Clear();
            queryGenerator.ResultColumns.Add("MCRA1" + Constants.MultipleIdsCrossRefPropertyInfoClass);

            cte = queryGenerator.GetCteList_Public();
            Assert.IsTrue(cte.Contains("MCR1"));
            Assert.IsFalse(cte.Contains("MCR2"));
        }