public void From_EntitySchema_To_IndexOperation() { //Arrange var input = HiveModelCreationHelper.CreateEntitySchema("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), true, HiveModelCreationHelper.CreateAttributeDefinition("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid(), HiveModelCreationHelper.CreateAttributeType("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid()), HiveModelCreationHelper.CreateAttributeGroup("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), new Random().Next(0, 1000), true), true)); var child = HiveModelCreationHelper.CreateEntitySchema("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), true, HiveModelCreationHelper.CreateAttributeDefinition("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid(), HiveModelCreationHelper.CreateAttributeType("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid()), HiveModelCreationHelper.CreateAttributeGroup("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), new Random().Next(0, 1000), true), true)); input.RelationProxies.EnlistChild(child, FixedRelationTypes.DefaultRelationType); //Act var output = _mapper.Map <EntitySchema, NestedHiveIndexOperation>(input); //lazily add the ids ExamineHelper.EnsureIds(output); //Assert Assert.AreEqual(typeof(EntitySchema).Name, output.ItemCategory); Assert.AreEqual(IndexOperationType.Add, output.OperationType); Assert.AreEqual(input.Id.Value.ToString(), output.Id.Value); Assert.AreEqual(input.SchemaType, output.Fields["SchemaType"].FieldValue); Assert.AreEqual( input.AttributeDefinitions.Count() + input.AttributeGroups.Count() + input.RelationProxies.AllChildRelations().Count() + 1, output.SubIndexOperations.Count()); Assert.AreEqual(input, output.Entity); var fieldMapper = new EntitySchemaToIndexFields(); Assert.AreEqual(fieldMapper.GetValue(input).Count(), output.Fields.Count()); VerifyIEntityFields(output, input); foreach (var a in output.SubIndexOperations.Where(x => x.Entity is AttributeDefinition).ToArray()) { Assert.IsFalse(((HiveIdValue)a.Fields[FixedIndexedFields.GroupId].FieldValue) == HiveIdValue.Empty); } }
public void From_EntitySchema_To_IndexOperation() { //Arrange var input = HiveModelCreationHelper.CreateEntitySchema("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), true, HiveModelCreationHelper.CreateAttributeDefinition("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid(), HiveModelCreationHelper.CreateAttributeType("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid()), HiveModelCreationHelper.CreateAttributeGroup("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), new Random().Next(0, 1000), true), true)); var child = HiveModelCreationHelper.CreateEntitySchema("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), true, HiveModelCreationHelper.CreateAttributeDefinition("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid(), HiveModelCreationHelper.CreateAttributeType("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), "this is a test" + Guid.NewGuid()), HiveModelCreationHelper.CreateAttributeGroup("test" + Guid.NewGuid(), "Test" + Guid.NewGuid(), new Random().Next(0, 1000), true), true)); input.RelationProxies.EnlistChild(child, FixedRelationTypes.DefaultRelationType); //Act var output = _mapper.Map<EntitySchema, NestedHiveIndexOperation>(input); //lazily add the ids ExamineHelper.EnsureIds(output); //Assert Assert.AreEqual(typeof(EntitySchema).Name, output.ItemCategory); Assert.AreEqual(IndexOperationType.Add, output.OperationType); Assert.AreEqual(input.Id.Value.ToString(), output.Id.Value); Assert.AreEqual(input.SchemaType, output.Fields["SchemaType"].FieldValue); Assert.AreEqual( input.AttributeDefinitions.Count() + input.AttributeGroups.Count() + input.RelationProxies.AllChildRelations().Count() + 1, output.SubIndexOperations.Count()); Assert.AreEqual(input, output.Entity); var fieldMapper = new EntitySchemaToIndexFields(); Assert.AreEqual(fieldMapper.GetValue(input).Count(), output.Fields.Count()); VerifyIEntityFields(output, input); foreach (var a in output.SubIndexOperations.Where(x => x.Entity is AttributeDefinition).ToArray()) { Assert.IsFalse(((HiveIdValue)a.Fields[FixedIndexedFields.GroupId].FieldValue) == HiveIdValue.Empty); } }