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); }
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); }