public void EnsureMetadata_Invalidates_WhenFieldDeleted() { EntityType type = null; Field field = null; Field calcField = null; try { // Create scenario type = new EntityType(); type.Name = "CFType"; field = new StringField().As <Field>(); field.Name = "CFField"; field.Save(); calcField = new StringField().As <Field>(); calcField.Name = "CFCalcField"; calcField.FieldCalculation = "'A'+CFField"; calcField.IsCalculatedField = true; calcField.Save(); type.Fields.Add(field); type.Fields.Add(calcField); type.Save(); // Get provider ICalculatedFieldMetadataProvider provider = Factory.CalculatedFieldMetadataProvider; // Run CalculatedFieldMetadata res1 = provider.GetCalculatedFieldMetadata(calcField.Id, CalculatedFieldSettings.Default); CalculatedFieldMetadata res2 = provider.GetCalculatedFieldMetadata(calcField.Id, CalculatedFieldSettings.Default); // Ensure same instance was returned (came from cache) Assert.That(res2, Is.SameAs(res1)); // Delete the field field.Delete(); // Rerun CalculatedFieldMetadata res3 = provider.GetCalculatedFieldMetadata(calcField.Id, CalculatedFieldSettings.Default); // Ensure different instance was returned (not from cache) Assert.That(res3, Is.Not.SameAs(res1)); Assert.That(res3.Exception, Is.Not.Null); // because the script is now invalid } finally { if (field != null) { field.Delete(); } if (calcField != null) { calcField.Delete(); } if (type != null) { type.Delete(); } } }
public void RegexPatternChecksInvalid( ) { StringField field = new StringField(); field.Name = "f1"; field.IsRequired = true; field.Pattern = Entity.Get <StringPattern>("emailPattern"); field.IsRequired = false; EntityType type = new EntityType(); type.Name = "t1"; type.Fields.Add(field.As <Field>()); type.Save(); var e = new Entity(type.Id); try { e.SetField(field, "blah!!!"); e.Save(); } finally { e.Delete(); field.Delete(); type.Delete(); } }
public void RegexDoesNotCheckEmptyStrings() { // Ensure that regex is not applied for empty string, if IsRequired is not set. StringField field = new StringField(); field.Name = "f1"; field.IsRequired = true; field.Pattern = Entity.Get <StringPattern>("emailPattern"); field.IsRequired = false; EntityType type = new EntityType(); type.Name = "t1"; type.Fields.Add(field.As <Field>()); type.Save(); var e = new Entity(type.Id); e.SetField(field, ""); e.Save( ); e.Delete( ); field.Delete(); type.Delete(); }
public void TestCreateEntityType( ) { EntityType newType = null; FieldGroup group = null; StringField field1 = null; try { newType = Entity.Create <EntityType>( ); newType.Name = "TestEntityType"; newType.Description = "Test new EntityType"; newType.Save( ); long typeId = newType.Id; group = new FieldGroup { Name = "TestGroup1" }; newType.FieldGroups.Add(group); group.Save( ); field1 = new StringField { Name = "TestField1", AllowMultiLines = true, FieldInGroup = @group, FieldIsOnType = newType }; field1.Save( ); var savedEntityType = Entity.Get <EntityType>(new EntityRef(typeId), true); Assert.IsTrue(savedEntityType.Name == "TestEntityType"); savedEntityType.Delete( ); } finally { if (field1 != null) { field1.Delete( ); } if (group != null) { group.Delete( ); } if (newType != null) { newType.Delete( ); } } }
public void Test_Invalidated_FieldName(string name1, string sname1, string name2, string sname2, string search, bool expect1, bool expect2) { EntityType type = null; try { type = new EntityType(); type.Name = Guid.NewGuid().ToString(); Field field = new StringField().As <Field>(); field.Name = name1; field.FieldScriptName = sname1; type.Fields.Add(field); type.Save(); MemberInfo member = Resolver.GetMemberOfType(search, type.Id, MemberType.Any); Assert.That(member != null, Is.EqualTo(expect1), "First check"); if (name2 != name1) { field.Name = name2; } if (sname2 != sname1) { field.FieldScriptName = sname2; } if (name2 == "Delete") { field.Delete(); } else { field.Save(); } member = Resolver.GetMemberOfType(search, type.Id, MemberType.Any); Assert.That(member != null, Is.EqualTo(expect2), "Second check"); } finally { if (type != null) { type.Delete(); } } }
public void DeleteAFieldReferedToByAPolicy() { var toDelete = new List <long>(); try { var newField = new StringField { Name = "test field" }.As <Field>(); newField.Save(); toDelete.Add(newField.Id); var policy = new RecordChangeAuditPolicy() { Name = "TEST ResourceAuditEventHandlerTests LogCreate", TriggeredOnType = Person.Person_Type, TriggerEnabled = true }; policy.UpdatedFieldsToTriggerOn.Add(newField); policy.UpdatedFieldsToTriggerOn.Add(Resource.Name_Field.As <Field>()); policy.Save(); toDelete.Add(policy.Id); newField.Delete(); var log = RunAndLog(() => { var person = Entity.Create <Person>(); person.Name = "bob"; person.Save(); }); Assert.That(log.Count, Is.EqualTo(1)); var logEntry = log[0].As <RecordChangeLogEntry>(); Assert.That(logEntry.Description, Is.EqualTo("[Name] set to 'bob'")); } finally { Entity.Delete(toDelete); } }