private static void AssertConsistencyProperties(EventType eventType) { var propertyNames = new List<string>(); IList<EventPropertyDescriptor> properties = eventType.PropertyDescriptors; for (int i = 0; i < properties.Count; i++) { string propertyName = properties[i].PropertyName; propertyNames.Add(propertyName); string failedMessage = "failed assertion for property '" + propertyName + "' "; // assert presence of descriptor ScopeTestHelper.AssertSame(properties[i], eventType.GetPropertyDescriptor(propertyName)); // test properties that can simply be in a property expression if ((!properties[i].RequiresIndex) && (!properties[i].RequiresMapKey)) { ScopeTestHelper.AssertTrue(failedMessage, eventType.IsProperty(propertyName)); ScopeTestHelper.AssertSame( failedMessage, eventType.GetPropertyType(propertyName), properties[i].PropertyType); ScopeTestHelper.AssertNotNull(failedMessage, eventType.GetGetter(propertyName)); } // test indexed property if (properties[i].IsIndexed) { string propertyNameIndexed = propertyName + "[0]"; ScopeTestHelper.AssertTrue(failedMessage, eventType.IsProperty(propertyNameIndexed)); ScopeTestHelper.AssertNotNull(failedMessage, eventType.GetPropertyType(propertyNameIndexed)); ScopeTestHelper.AssertNotNull(failedMessage, eventType.GetGetter(propertyNameIndexed)); } // test mapped property if (properties[i].RequiresMapKey) { string propertyNameMapped = propertyName + "('a')"; ScopeTestHelper.AssertTrue(failedMessage, eventType.IsProperty(propertyNameMapped)); ScopeTestHelper.AssertNotNull(failedMessage, eventType.GetPropertyType(propertyNameMapped)); ScopeTestHelper.AssertNotNull(failedMessage, eventType.GetGetter(propertyNameMapped)); } // consistent flags ScopeTestHelper.AssertFalse(failedMessage, properties[i].IsIndexed && properties[i].IsMapped); if (properties[i].RequiresIndex) { ScopeTestHelper.AssertTrue(failedMessage, properties[i].IsIndexed); } if (properties[i].RequiresMapKey) { ScopeTestHelper.AssertTrue(failedMessage, properties[i].IsMapped); } } // assert same property names EPAssertionUtil.AssertEqualsAnyOrder(eventType.PropertyNames, propertyNames.ToArray()); }
private static void AssertFragmentArray(EventBean @event, bool isNative, string propertyExpression) { var fragmentBean = (EventBean[]) @event.GetFragment(propertyExpression); FragmentEventType fragmentType = @event.EventType.GetFragmentType(propertyExpression); ScopeTestHelper.AssertTrue("failed for " + propertyExpression, fragmentType.IsIndexed); ScopeTestHelper.AssertEquals("failed for " + propertyExpression, isNative, fragmentType.IsNative); ScopeTestHelper.AssertSame( "failed for " + propertyExpression, fragmentBean[0].EventType, fragmentType.FragmentType); AssertConsistency(fragmentBean[0]); }