Exemple #1
0
        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);
            }

        }