Rebel.Tests.Extensions.HiveModelCreationHelper.SetupTestData C# (CSharp) Method

SetupTestData() public static method

public static SetupTestData ( System.Guid newGuid, System.Guid newGuidRedHerring, ProviderSetup providerSetup ) : TypedEntity
newGuid System.Guid
newGuidRedHerring System.Guid
providerSetup Rebel.Hive.ProviderSetup
return TypedEntity
        public static TypedEntity SetupTestData(Guid newGuid, Guid newGuidRedHerring, ProviderSetup providerSetup)
        {
            var entity = HiveModelCreationHelper.MockTypedEntity();
            entity.Id = new HiveId(newGuid);
            entity.EntitySchema.Alias = "schema-alias1";

            var existingDef = entity.EntitySchema.AttributeDefinitions[0];
            var newDef = HiveModelCreationHelper.CreateAttributeDefinition("aliasForQuerying", "", "", existingDef.AttributeType, existingDef.AttributeGroup, true);

            var boolType = new AttributeType("boolean", "", "", new BoolSerializationType());
            var newDef_bool = HiveModelCreationHelper.CreateAttributeDefinition(BoolDefAlias, "", "", boolType, existingDef.AttributeGroup, true);

            entity.EntitySchema.AttributeDefinitions.Add(newDef);
            entity.EntitySchema.AttributeDefinitions.Add(newDef_bool);
            entity.Attributes.Add(new TypedAttribute(newDef, "my-new-value"));
            entity.Attributes.Add(new TypedAttribute(newDef_bool, true));

            entity.Attributes[1].DynamicValue = "not-on-red-herring";
            entity.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"] = "my-test-route";

            var redHerringEntity = HiveModelCreationHelper.MockTypedEntity();
            redHerringEntity.Id = new HiveId(newGuidRedHerring);
            redHerringEntity.EntitySchema.Alias = "redherring-schema";
            var newDef_onRedHerring_bool = HiveModelCreationHelper.CreateAttributeDefinition(BoolDefAlias, "", "", boolType, existingDef.AttributeGroup, true);
            redHerringEntity.EntitySchema.AttributeDefinitions.Add(newDef_onRedHerring_bool);
            redHerringEntity.Attributes.Add(new TypedAttribute(newDef_onRedHerring_bool, "false"));

            using (var uow = providerSetup.UnitFactory.Create())
            {
                uow.EntityRepository.AddOrUpdate(entity);
                // Only add extra entity if caller wants it
                if (newGuidRedHerring != Guid.Empty) uow.EntityRepository.AddOrUpdate(redHerringEntity);
                uow.Complete();
            }

            return entity;
        }