public void HiveEntityExtensions_GetAllIdentifiableItems_Gets_All_Items() { var e = HiveModelCreationHelper.MockTypedEntity(false); var r = new Revision <TypedEntity>(e); var actualEntities = e.Attributes.Cast <IReferenceByHiveId>() //we need to get ALL unique gruops... this is because the mocked hive model doesn't assign the groups properly. .Concat(e.EntitySchema.AttributeGroups .Concat(e.AttributeGroups) .Concat(e.Attributes.Select(x => x.AttributeDefinition.AttributeGroup)) .Concat(e.EntitySchema.AttributeDefinitions.Select(x => x.AttributeGroup)) .Distinct().Cast <IReferenceByHiveId>()) .Concat(e.EntitySchema.AttributeDefinitions.Cast <IReferenceByHiveId>()) .Concat(e.EntitySchema.AttributeTypes.Cast <IReferenceByHiveId>()) .Concat(new[] { (IReferenceByHiveId)e.EntitySchema, (IReferenceByHiveId)r.Item, (IReferenceByHiveId)r.MetaData }) .Distinct(); Debug.WriteLine("actual total attributes: " + e.Attributes.Count); Debug.WriteLine("actual total entity groups: " + e.AttributeGroups.Count()); Debug.WriteLine("actual total schema groups: " + e.EntitySchema.AttributeGroups.Count()); Debug.WriteLine("actual total unique groups: " + e.EntitySchema.AttributeGroups .Concat(e.AttributeGroups) .Concat(e.Attributes.Select(x => x.AttributeDefinition.AttributeGroup)) .Concat(e.EntitySchema.AttributeDefinitions.Select(x => x.AttributeGroup)) .Distinct().Count()); Debug.WriteLine("actual total entity attribute defs: " + e.Attributes.Select(x => x.AttributeDefinition).Count()); Debug.WriteLine("actual total schema attribute defs: " + e.EntitySchema.AttributeDefinitions.Count); Debug.WriteLine("actual total attribute types: " + e.EntitySchema.AttributeTypes.Count()); var foundEntities = r.GetAllIdentifiableItems().Distinct().ToArray(); Debug.WriteLine("found total revision data: " + foundEntities.Count(x => x is RevisionData)); Debug.WriteLine("found total schemas: " + foundEntities.Count(x => x is EntitySchema)); Debug.WriteLine("found total typed entities: " + foundEntities.Count(x => x is TypedEntity)); Debug.WriteLine("found total attributes: " + foundEntities.Count(x => x is TypedAttribute)); Debug.WriteLine("found total groups: " + foundEntities.Count(x => x is AttributeGroup)); Debug.WriteLine("found total attribute defs: " + foundEntities.Count(x => x is AttributeDefinition)); Debug.WriteLine("found total attribute types: " + foundEntities.Count(x => x is AttributeType)); Assert.AreEqual(actualEntities.Count(), foundEntities.Count()); }
public void HiveEntityExtensions_GetAllIdentifiableItems_Gets_All_Items() { var e = HiveModelCreationHelper.MockTypedEntity(false); var r = new Revision<TypedEntity>(e); var actualEntities = e.Attributes.Cast<IReferenceByHiveId>() //we need to get ALL unique gruops... this is because the mocked hive model doesn't assign the groups properly. .Concat(e.EntitySchema.AttributeGroups .Concat(e.AttributeGroups) .Concat(e.Attributes.Select(x => x.AttributeDefinition.AttributeGroup)) .Concat(e.EntitySchema.AttributeDefinitions.Select(x => x.AttributeGroup)) .Distinct().Cast<IReferenceByHiveId>()) .Concat(e.EntitySchema.AttributeDefinitions.Cast<IReferenceByHiveId>()) .Concat(e.EntitySchema.AttributeTypes.Cast<IReferenceByHiveId>()) .Concat(new[] { (IReferenceByHiveId)e.EntitySchema, (IReferenceByHiveId)r.Item, (IReferenceByHiveId)r.MetaData }) .Distinct(); Debug.WriteLine("actual total attributes: " + e.Attributes.Count); Debug.WriteLine("actual total entity groups: " + e.AttributeGroups.Count()); Debug.WriteLine("actual total schema groups: " + e.EntitySchema.AttributeGroups.Count()); Debug.WriteLine("actual total unique groups: " + e.EntitySchema.AttributeGroups .Concat(e.AttributeGroups) .Concat(e.Attributes.Select(x => x.AttributeDefinition.AttributeGroup)) .Concat(e.EntitySchema.AttributeDefinitions.Select(x => x.AttributeGroup)) .Distinct().Count()); Debug.WriteLine("actual total entity attribute defs: " + e.Attributes.Select(x => x.AttributeDefinition).Count()); Debug.WriteLine("actual total schema attribute defs: " + e.EntitySchema.AttributeDefinitions.Count); Debug.WriteLine("actual total attribute types: " + e.EntitySchema.AttributeTypes.Count()); var foundEntities = r.GetAllIdentifiableItems().Distinct().ToArray(); Debug.WriteLine("found total revision data: " + foundEntities.Count(x => x is RevisionData)); Debug.WriteLine("found total schemas: " + foundEntities.Count(x => x is EntitySchema)); Debug.WriteLine("found total typed entities: " + foundEntities.Count(x => x is TypedEntity)); Debug.WriteLine("found total attributes: " + foundEntities.Count(x => x is TypedAttribute)); Debug.WriteLine("found total groups: " + foundEntities.Count(x => x is AttributeGroup)); Debug.WriteLine("found total attribute defs: " + foundEntities.Count(x => x is AttributeDefinition)); Debug.WriteLine("found total attribute types: " + foundEntities.Count(x => x is AttributeType)); Assert.AreEqual(actualEntities.Count(), foundEntities.Count()); }