public void AllowLocalizedDataTest()
        {
            // Arrange.
            var field = new ReferenceFieldDefinition { SystemName = "TestField" };

            // Act / Assert.
            Assert.IsFalse(field.AllowLocalizedData);
        }
        public void GetColumnNameTest()
        {
            // Arrange.
            var field = new ReferenceFieldDefinition { SystemName = "TestField" };

            // Act / Assert.
            Assert.AreEqual("TestField", field.GetColumnName(Constants.DefaultCultureName));
            Assert.AreEqual("TestField", field.GetColumnName("fr-FR"));
        }
        public void GetTableNameTest()
        {
            // Arrange.
            var process = new ReferenceProcessDefinition { SystemName = "TestProcess" };
            var field = new ReferenceFieldDefinition { SystemName = "TestField", DefinedIn = process };

            // Act / Assert.
            Assert.AreEqual("TestProcess", field.GetTableName());
        }
        public void RefUpdateFields_ShouldUpdateNonReferencedFields()
        {
            #region Arrange

            const string RefSystemName = "Cr1";

            var fieldDefinition = new ReferenceFieldDefinition { SystemName = RefSystemName };
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition() { Alias = Field1Name, SystemName = Field1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition() { Alias = CrField1Name, SystemName = CrField1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition() { Alias = McrField1Name, SystemName = McrField1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition() { Alias = RcrField1Name, SystemName = RcrField1Name });

            var queryGenerator = new SearchQueryGeneratorTest { RootTable = new TableDefinition("Test") };

            AddReferencedFields(queryGenerator);
            AddNonReferencedFields(queryGenerator);
            AddReferencedCrossReferences(queryGenerator);
            AddNonReferencedCrossReferences(queryGenerator);

            #endregion Arrange

            // Act
            queryGenerator.RefUpdateFields(fieldDefinition);

            // Assert
            var fields = queryGenerator.RootTable.GetFields();
            Assert.IsTrue(fields.First(f => f.SystemName.Equals(Field1Name)).IncludeInResult);
            Assert.IsFalse(fields.First(f => f.SystemName.Equals(Field2Name)).IncludeInResult);

            Assert.IsTrue(queryGenerator.SingleCrossReferences.First(cr => cr.SystemName.Equals(CrField1Name)).IncludeInResult);
            Assert.IsTrue(queryGenerator.MultiCrossReferences.First(mcr => mcr.SystemName.Equals(McrField1Name)).IncludeInResult);
            Assert.IsTrue(queryGenerator.ReverseCrossReferences.First(rcr => rcr.SystemName.Equals(RcrField1Name)).IncludeInResult);

            Assert.IsFalse(queryGenerator.SingleCrossReferences.First(cr => cr.SystemName.Equals(CrField2Name)).IncludeInResult);
            Assert.IsFalse(queryGenerator.MultiCrossReferences.First(mcr => mcr.SystemName.Equals(McrField2Name)).IncludeInResult);
            Assert.IsFalse(queryGenerator.ReverseCrossReferences.First(rcr => rcr.SystemName.Equals(RcrField2Name)).IncludeInResult);
        }
 /// <summary>
 /// Refs the get query for reverse cross ref.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="field">The field.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string RefGetQueryForReverseCrossRef(ReferenceFieldDefinition field)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Refs the name of the get cte.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string RefGetCteName(ReferenceFieldDefinition field)
 {
     return field.SystemName;
 }
 /// <summary>
 /// Refs the get cte.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="cteName">Name of the cte.</param>
 /// <param name="process">The process.</param>
 /// <param name="fields">The fields.</param>
 /// <param name="includeSearchFields">if set to <c>true</c> [include search fields].</param>
 /// <param name="includeDetailFields">if set to <c>true</c> [include detail fields].</param>
 /// <param name="availableFields">The available fields.</param>
 /// <param name="field">The field.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string RefGetCte(
     string cteName,
     ReferenceProcessDefinition process,
     IEnumerable<ReferenceDisplayFieldDefinition> fields,
     bool includeSearchFields,
     bool includeDetailFields,
     out HashSet<string> availableFields,
     ReferenceFieldDefinition field = null)
 {
     availableFields = new HashSet<string>();
     return cteName;
 }
 /// <summary>
 /// Refs the add single cross ref outer joins.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="joinsString">The joins string.</param>
 /// <param name="tableAliases">The table aliases.</param>
 /// <param name="joinField">The join field.</param>
 /// <param name="path">The path.</param>
 /// <param name="field">The field.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override void RefAddSingleCrossRefOuterJoins(
     StringBuilder joinsString,
     TableAliasCollection tableAliases,
     ReferenceJoinFieldDefinition joinField,
     string path = "",
     ReferenceFieldDefinition field = null)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets the tree CT e_ level.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="cte">The cte.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string GetTreeCTE_Level(ReferenceFieldDefinition field, string cte)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Gets the name of the reverse cross ref items select cte.
 /// </summary>
 /// <param name="field">The field.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string GetReverseCrossRefItemsSelectCteName(ReferenceFieldDefinition field)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Refs the get query for item.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="field">The field.</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 public override string RefGetQueryForItem(ReferenceFieldDefinition field)
 {
     throw new NotImplementedException();
 }
Esempio n. 12
0
        public void GetFieldReturnsSingleCrossReferenceField()
        {
            // Arrange.
            var rootTable = new TableDefinition("TestTable");
            var processDefinition = new ProcessDefinition();
            processDefinition.TableList.Add(rootTable);

            var field = new ReferenceFieldDefinition { SystemName = "TestField" };
            processDefinition.SingleCrossReferenceFields.Add(field);

            // Act / Assert.
            Assert.AreSame(field, processDefinition.GetField("TestField"));
        }
Esempio n. 13
0
        /// <summary>
        /// Gets the name of the database view that returns the links for the specified reference field.
        /// </summary>
        /// <param name="field">
        /// The reference field metadata.
        /// </param>
        /// <returns>
        /// The view name.
        /// </returns>
        public static string GetReferenceFieldIdMappingsViewName(ReferenceFieldDefinition field)
        {
            if (field == null)
                throw new ArgumentNullException("field");

            return GetReferenceFieldIdMappingsViewName(field.DefinedIn.SystemName, field.SystemName);
        }
Esempio n. 14
0
        public static string GetJoinTableName(ReferenceFieldDefinition field)
        {
            if (field == null)
            {
                return null;
            }

            if (field.ColumnType == ColumnTypes.MultiReference && field.ReferenceField == null)
            {
                return GetMultiCrossReferenceJoinTableName(
                    field.DefinedIn.SystemName, field.SystemName, field.ReferenceProcess.SystemName);
            }

            throw new InvalidOperationException("Invalid field type.");
        }
Esempio n. 15
0
        public static string GetJoinTableChildKey(ReferenceFieldDefinition displayField)
        {
            if (displayField == null)
            {
                return null;
            }

            if (displayField.ColumnType == ColumnTypes.MultiReference && displayField.ReferenceField == null)
            {
                return GetMultiCrossReferenceJoinTableChildKey(displayField.ReferenceProcess.SystemName);
            }

            throw new InvalidOperationException("Invalid field type.");
        }
        public void RefUpdateFields_ShouldNotAffectSpecificFields()
        {
            #region Assert

            const string RefSystemName = "Cr1";

            var fieldDefinition = new ReferenceFieldDefinition { SystemName = RefSystemName };
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition() { Alias = Field1Name, SystemName = Field1Name });

            var queryGenerator = new SearchQueryGeneratorTest { RootTable = new TableDefinition("Test") };

            AddReferencedFields(queryGenerator);
            AddNonReferencedFields(queryGenerator);

            #endregion Assert

            // Act
            queryGenerator.RefUpdateFields(fieldDefinition);

            // Assert
            var fields = queryGenerator.RootTable.GetFields();
            Assert.IsTrue(fields.First(f => f.SystemName.Equals(Constants.IdColumnName)).IncludeInResult);
            Assert.IsTrue(fields.First(f => f.SystemName.Equals(Constants.DerivedProcessColumnName)).IncludeInResult);
        }
        public void RefUpdateFields_ShouldIncludeInResultAllFieldsFromDisplayFieldsCollection()
        {
            //Arrange
            var queryGenerator = new SearchQueryGeneratorTest { RootTable = new TableDefinition("Test") };

            var crField = new ReferenceFieldDefinition { SystemName = CrField1Name, Alias = CrField1Name, IncludeInResult = false };
            var mcrField = new ReferenceFieldDefinition { SystemName = McrField1Name, Alias = McrField1Name, IncludeInResult = false };
            var rcrField = new ReferenceFieldDefinition { SystemName = RcrField1Name, Alias = RcrField1Name, IncludeInResult = false };

            queryGenerator.RootTable.AddField(Field1Name, ColumnTypes.String, includeInResult: false);
            queryGenerator.SingleCrossReferences.Add(crField);
            queryGenerator.MultiCrossReferences.Add(mcrField);
            queryGenerator.ReverseCrossReferences.Add(rcrField);

            var fieldDefinition = new ReferenceFieldDefinition();
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition { Alias = Field1Name, SystemName = Field1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition { Alias = CrField1Name, SystemName = CrField1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition { Alias = McrField1Name, SystemName = McrField1Name });
            fieldDefinition.DisplayFields.Add(new ReferenceDisplayFieldDefinition { Alias = RcrField1Name, SystemName = RcrField1Name });

            //Act
            queryGenerator.RefUpdateFields(fieldDefinition);

            //Assert
            Assert.IsTrue(queryGenerator.RootTable.GetFields()[0].IncludeInResult);
            Assert.IsTrue(crField.IncludeInResult);
            Assert.IsTrue(mcrField.IncludeInResult);
            Assert.IsTrue(rcrField.IncludeInResult);
        }
 /// <summary>
 /// Gets the selected fields.
 /// <author>unknown</author>
 /// </summary>
 /// <param name="field">The field.</param>
 /// <param name="isParameter">if set to <c>true</c> [is parameter].</param>
 /// <param name="isHierarchicalSelect">if set to <c>true</c> [is hierarchical select].</param>
 /// <returns>System.String.</returns>
 /// <exception cref="System.NotImplementedException"></exception>
 protected override string GetSelectedFields(ReferenceFieldDefinition field, bool isParameter = false, bool isHierarchicalSelect = false)
 {
     throw new NotImplementedException();
 }