Beispiel #1
0
        public void DataTypeEditorControllerTests_PreValueModel_Data_Will_Be_Updated_With_Posted_Values()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "PreValueEditorModel.Value", "hello" }
            }, GetBackOfficeRequestContext());

            //Act
            var result = controller.EditForm(dataTypeEntity.Id) as ViewResult;

            //Assert
            Assert.IsTrue(controller.ModelState.IsValidField("PreValueEditorModel.Value"));
            Assert.AreEqual("hello", controller.ModelState["PreValueEditorModel.Value"].Value.AttemptedValue);
        }
Beispiel #2
0
        public void DataTypeEditorControllerTests_Invalid_Model_State_When_Missing_Required_Values()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "" },
                { "PropertyEditorId", "" }
            }, GetBackOfficeRequestContext());

            //Act

            var result = controller.EditForm(dataTypeEntity.Id) as ViewResult;

            //Assert

            Assert.IsFalse(controller.ModelState.IsValidField("Name"));
            Assert.IsFalse(controller.ModelState.IsValidField("PropertyEditorId"));
        }
Beispiel #3
0
        public void DataTypeEditorControllerTests_All_Standard_Values_Bound()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "Hello World" },
                { "PropertyEditorId", "5A379AF0-0256-4BE9-9D01-F149603DB257" }
            }, GetBackOfficeRequestContext());

            //Act
            var result     = controller.EditForm(dataTypeEntity.Id) as ViewResult;
            var modelState = controller.ModelState;

            //Assert

            Assert.AreEqual("Hello World", controller.ModelState["Name"].Value.AttemptedValue);
            Assert.IsTrue(controller.ModelState.IsValidField("Name"));
            Assert.AreEqual("5A379AF0-0256-4BE9-9D01-F149603DB257", controller.ModelState["PropertyEditorId"].Value.AttemptedValue);
            Assert.IsTrue(controller.ModelState.IsValidField("PropertyEditorId"));
        }
Beispiel #4
0
        public void DataTypeEditorControllerTests_Create_New_Wizard_Step_Bound_And_Validated()
        {
            //Arrange

            var propEditor  = new MandatoryPropertyEditor();
            var createModel = new CreateDataTypeModel {
                Name = "test", PropertyEditorId = propEditor.Id
            };

            //create data type in persistence layer
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(GetBackOfficeRequestContext());

            //Act

            var result = (ViewResult)controller.CreateNewForm(createModel);
            var model  = (CreateDataTypeModel)result.Model;

            //Assert

            Assert.IsTrue(controller.ModelState.IsValidField("Name"));
            Assert.IsTrue(controller.ModelState.IsValidField("PropertyEditorId"));

            Assert.AreEqual("test", model.Name);
            Assert.AreEqual(propEditor.Id, model.PropertyEditorId);
        }
Beispiel #5
0
        public void CanSerializeThenDeserializeVerionedTypedEntity()
        {
            Revision <TypedEntity> revision = HiveModelCreationHelper.MockVersionedTypedEntity(true);

            var result   = SerializationService.ToStream(revision);
            var item     = SerializationService.ToStream(revision.Item);
            var metadata = SerializationService.ToStream(revision.MetaData);

            Assert.That(result.Success, Is.True);
            Assert.That(result.ResultStream, Is.Not.Null);
            Assert.That(item.Success, Is.True);
            Assert.That(item.ResultStream, Is.Not.Null);
            Assert.That(metadata.Success, Is.True);
            Assert.That(metadata.ResultStream, Is.Not.Null);

            var objTE = SerializationService.FromStream(item.ResultStream, typeof(TypedEntity));
            var objRD = SerializationService.FromStream(metadata.ResultStream, typeof(RevisionData));
            var objR  = SerializationService.FromStream(result.ResultStream, typeof(Revision <TypedEntity>));

            Assert.That(objTE, Is.Not.Null);
            Assert.That(objRD, Is.Not.Null);
            Assert.That(objR, Is.Not.Null);
            Assert.That(objR.GetType(), Is.EqualTo(typeof(Revision <TypedEntity>)));
            Assert.That(((Revision <TypedEntity>)objR).Item, Is.Not.Null);
            Assert.That(((Revision <TypedEntity>)objR).MetaData, Is.Not.Null);
            Assert.That(((Revision <TypedEntity>)objR).Item.Attributes.Count, Is.EqualTo(revision.Item.Attributes.Count));
        }
Beispiel #6
0
        public void CanSerializeThenDeserializeTypedEntity()
        {
            TypedEntity entity = HiveModelCreationHelper.MockTypedEntity(true);

            var graph = entity.GetAllIdentifiableItems().Reverse().ToArray();

            var testTypes = new List <object>();

            foreach (var referenceByHiveId in graph.WhereNotNull())
            {
                object test;
                try
                {
                    test = SerializeDeserialize(referenceByHiveId);
                    Assert.NotNull(test);
                    testTypes.Add(test);
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

            var obj = SerializeDeserialize(entity);

            Assert.That(obj, Is.Not.Null);
            Assert.That(obj.GetType(), Is.EqualTo(typeof(TypedEntity)));
            Assert.That(((TypedEntity)obj).Id, Is.EqualTo(entity.Id));
            Assert.That(((TypedEntity)obj).Attributes.Count, Is.EqualTo(entity.Attributes.Count));
            Assert.That(((TypedEntity)obj).AttributeGroups.Count(), Is.EqualTo(entity.AttributeGroups.Count()));
        }
Beispiel #7
0
        public void DataTypeEditorControllerTests_DataType_Saved()
        {
            //Arrange

            //create data type in persistence layer
            var propEditor     = new MandatoryPropertyEditor();
            var dataTypeEntity = HiveModelCreationHelper.CreateAttributeType("test", "Test", "");

            dataTypeEntity.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(dataTypeEntity);

            var controller = new DataTypeEditorController(GetBackOfficeRequestContext());

            controller.InjectDependencies(new Dictionary <string, string>(), new Dictionary <string, string>
            {
                { "Name", "Hello World" },
                { "PropertyEditorId", "5A379AF0-0256-4BE9-9D01-F149603DB257" },
                { "submit.Save", "Save" }                                   //set save flag
            }, GetBackOfficeRequestContext(), false);

            //Act

            var result = controller.EditForm(dataTypeEntity.Id);

            //Assert

            Assert.IsTrue(result is RedirectToRouteResult);

            using (var uow = UmbracoApplicationContext.Hive.OpenReader <IContentStore>())
            {
                var latestEntity = uow.Repositories.Schemas.Get <AttributeType>(dataTypeEntity.Id);
                Assert.IsTrue(dataTypeEntity.UtcModified < latestEntity.UtcModified);
            }
        }
        public void ReadWriteRepositoryUnitOfWorkTests_UncommitedUnitOfWork_DoesNotUpdateDataStore()
        {
            //arrange
            var writer = CreateReadWritter();

            //act
            var id = new HiveId(Guid.NewGuid());

            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                entity.Id = id;
                uow.ReadWriteRepository.AddOrUpdate(entity);
            }

            _sessionForTest.Clear();

            //assert
            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                Assert.IsNull(uow.ReadWriteRepository.GetEntity <AttributeType>(id));
            }

            writer.Dispose();
        }
        public void CanAddAtLeast300ItemsPerSecond()
        {
            var watch = new Stopwatch();

            TypedEntity[] itemsToAdd = new TypedEntity[500];
            for (int i = 0; i < 300; i++)
            {
                var item = HiveModelCreationHelper.MockTypedEntity(true);
                itemsToAdd[i] = item;
            }

            watch.Start();
            for (int i = 0; i < 300; i++)
            {
                CacheProvider.AddOrChangeValue(CacheKey.Create("Item " + i), itemsToAdd[i]);
            }
            watch.Stop();
            var writeElapsed = watch.Elapsed;

            watch.Reset();
            watch.Start();
            for (int i = 0; i < 300; i++)
            {
                var cacheKey = CacheKey.Create("Item " + i);
                var item     = CacheProvider.Get <TypedEntity>(cacheKey);
                Assert.That(item, Is.Not.Null);
            }
            watch.Stop();
            var readElapsed = watch.Elapsed;

            LogHelper.TraceIfEnabled <AbstractCacheProviderFixture>("Write Took (s): " + writeElapsed.TotalSeconds);
            LogHelper.TraceIfEnabled <AbstractCacheProviderFixture>("Read Took (s): " + readElapsed.TotalSeconds);
            Assert.That(writeElapsed, Is.LessThan(TimeSpan.FromSeconds(1)));
            Assert.That(readElapsed, Is.LessThan(TimeSpan.FromSeconds(1)));
        }
Beispiel #10
0
        protected EntitySchema CreateNewSchema(PropertyEditor propEditor = null, string alias = "test")
        {
            if (propEditor == null)
            {
                propEditor = new MandatoryPropertyEditor();
            }

            var attributeType = HiveModelCreationHelper.CreateAttributeType("test", "test", "test");

            attributeType.RenderTypeProvider = propEditor.Id.ToString();
            UmbracoApplicationContext.AddPersistenceData(attributeType);

            var schema = HiveModelCreationHelper.MockEntitySchema(alias, alias);

            schema.TryAddAttributeDefinition(HiveModelCreationHelper.CreateAttributeDefinition("siteName", "Site Name", "", attributeType, null));
            schema.TryAddAttributeDefinition(HiveModelCreationHelper.CreateAttributeDefinition("bodyText", "Body Text", "", attributeType, null));

            //set all attribute defs to the attribute type
            schema.AttributeDefinitions.Where(x => !x.Alias.StartsWith("system-")).ForEach(x => x.AttributeType = attributeType);

            schema.RelationProxies.EnlistParent(new ContentRootSchema(), FixedRelationTypes.DefaultRelationType, 0);

            UmbracoApplicationContext.AddPersistenceData(schema);

            return(schema);
        }
        public void Adding_AttributeDefinitions_WithoutIds_AddsToGroupsOnSchema()
        {
            // Arrange
            var attributionSchema = HiveModelCreationHelper.CreateEntitySchema("test", "Test", new AttributeDefinition[] { });

            Assert.AreEqual(0, attributionSchema.AttributeGroups.Count);
            var nameNameType   = _attributeTypeRegistry.GetAttributeType(NodeNameAttributeType.AliasValue);
            var fileUploadType = _attributeTypeRegistry.GetAttributeType(FileUploadAttributeType.AliasValue);

            // Act & Assert
            attributionSchema.AttributeDefinitions.Add(new AttributeDefinition(NodeNameAttributeDefinition.AliasValue, "Node Name")
            {
                //Id = new HiveId("mi-name".EncodeAsGuid()),
                AttributeType  = nameNameType,
                AttributeGroup = FixedGroupDefinitions.GeneralGroup,
                Ordinal        = 0
            });
            Assert.AreEqual(1, attributionSchema.AttributeDefinitions.Count);
            Assert.AreEqual(1, attributionSchema.AttributeGroups.Count);
            CollectionAssert.Contains(attributionSchema.AttributeGroups, FixedGroupDefinitions.GeneralGroup);

            attributionSchema.AttributeDefinitions.Add(new AttributeDefinition("uploadedFile", "Uploaded File")
            {
                //Id = new HiveId("mi-upload".EncodeAsGuid()),
                AttributeType  = fileUploadType,
                AttributeGroup = FixedGroupDefinitions.FileProperties,
                Ordinal        = 0
            });
            Assert.AreEqual(2, attributionSchema.AttributeDefinitions.Count);
            Assert.AreEqual(2, attributionSchema.AttributeGroups.Count);
            CollectionAssert.Contains(attributionSchema.AttributeGroups, FixedGroupDefinitions.GeneralGroup);
            CollectionAssert.Contains(attributionSchema.AttributeGroups, FixedGroupDefinitions.FileProperties);
        }
        public void WhenEntityIsAdded_AndTaskCausesCancellation_EntityIsNotAdded()
        {
            // Arrange
            var preAddMock = Substitute.For <AbstractTask>(_frameworkContext);

            preAddMock.When(x => x.Execute(Arg.Any <TaskExecutionContext>())).Do(x => x.Arg <TaskExecutionContext>().Cancel = true);
            var postAddMock = Substitute.For <AbstractTask>(_frameworkContext);

            // Act
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdate, () => preAddMock, true);
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PostAddOrUpdate, () => postAddMock, true);
            using (var uow = _groupUnitFactory.Create())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

                // Check the pre-add and post-add tasks have not yet been fired
                DoesNotThrow(() => preAddMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));
                DoesNotThrow(() => postAddMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Cause the pre-add task to be fired
                uow.Repositories.AddOrUpdate(anything);

                // Assert the pre-add task has been fired, and the post-add task is not fired
                DoesNotThrow(() => preAddMock.Received(1).Execute(Arg.Any <TaskExecutionContext>()), "Call was not received 1 times");
                DoesNotThrow(() => postAddMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));
            }
        }
        public void WhenRelationIsAdded_ViaAddRelationMethod_PreAndPostRelationAddedBeforeUnitComplete_TasksAreTriggered()
        {
            // Arrange
            var preEventMock  = Substitute.For <AbstractTask>(_frameworkContext);
            var postEventMock = Substitute.For <AbstractTask>(_frameworkContext);

            // Act
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Relations.PreRelationAdded, () => preEventMock, true);
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Relations.PostRelationAdded, () => postEventMock, true);
            using (var uow = _groupUnitFactory.Create())
            {
                var parentAnything = HiveModelCreationHelper.MockTypedEntity();
                var childAnything  = HiveModelCreationHelper.MockTypedEntity();

                // Check the task has not yet been fired
                DoesNotThrow(() => preEventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));
                DoesNotThrow(() => postEventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Add items
                uow.Repositories.AddOrUpdate(parentAnything);
                uow.Repositories.AddOrUpdate(childAnything);

                // Add relation and cause the task to be fired
                uow.Repositories.AddRelation(parentAnything, childAnything, FixedRelationTypes.DefaultRelationType, 0);

                // Assert the task has been fired once for the group and once for the repository (handler can check source if they only want to act once)
                DoesNotThrow(() => preEventMock.Received(2).Execute(Arg.Any <TaskExecutionContext>()), "Pre-Call was not received 2 times");
                DoesNotThrow(() => postEventMock.Received(2).Execute(Arg.Any <TaskExecutionContext>()), "Post-Call was not received 2 times");
            }
        }
        public void WhenEntityIsAdded_AndUnitCompletionTaskCausesCancellation_UnitIsRolledBack()
        {
            // Arrange
            var preAddMock = Substitute.For <AbstractTask>(_frameworkContext);

            preAddMock.When(x => x.Execute(Arg.Any <TaskExecutionContext>())).Do(x => x.Arg <TaskExecutionContext>().Cancel = true);

            // Act
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdateOnUnitComplete, () => preAddMock, true);
            using (var uow = _groupUnitFactory.Create())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

                // Check the task has not yet been fired
                DoesNotThrow(() => preAddMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Cause the task to be fired
                uow.Repositories.AddOrUpdate(anything);

                // Check the task has still not yet been fired
                DoesNotThrow(() => preAddMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Complete the unit
                Assert.That(uow.WasAbandoned, Is.False);
                uow.Complete();

                // Assert
                // Check the task has been fired
                DoesNotThrow(() => preAddMock.Received(1).Execute(Arg.Any <TaskExecutionContext>()), "Task was not executed");
                // Check the unit was then rolled back
                Assert.That(uow.WasAbandoned, Is.True);
            }
        }
Beispiel #15
0
        public void OnceUnitOfWorkCommitted_SchemaDataStoreUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;

            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");

                writer.EntityRepository.Schemas.AddOrUpdate(entity);
                writer.Complete();
                id = entity.Id;
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get <AttributeType>(id));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNotNull(writer.EntityRepository.Schemas.Get <AttributeType>(id));
            }
        }
        public void ReadWriteRepositoryUnitOfWorkTests_OnceUnitOfWorkCommitted_DataStoreUpdated()
        {
            //Arrange
            var writer = CreateReadWritter();

            //Act
            HiveId id;

            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                uow.ReadWriteRepository.AddOrUpdate(entity);
                uow.Commit();
                id = entity.Id;
            }

            _sessionForTest.Clear();

            //assert
            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                Assert.IsNotNull(uow.ReadWriteRepository.GetEntity <AttributeType>(id));
            }

            writer.Dispose();
        }
        public void WhenRelationIsAdded_ViaRelationProxies_PreAndPostRelationAddedBeforeUnitComplete_TasksAreTriggered()
        {
            // Arrange
            var preEventMock  = Substitute.For <AbstractTask>(_frameworkContext);
            var postEventMock = Substitute.For <AbstractTask>(_frameworkContext);

            // Act
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Relations.PreRelationAdded, () => preEventMock, true);
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Relations.PostRelationAdded, () => postEventMock, true);
            using (var uow = _groupUnitFactory.Create())
            {
                var parentAnything = HiveModelCreationHelper.MockTypedEntity();
                var childAnything  = HiveModelCreationHelper.MockTypedEntity();

                // Check the task has not yet been fired
                DoesNotThrow(() => preEventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));
                DoesNotThrow(() => postEventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Add items
                parentAnything.RelationProxies.EnlistChild(childAnything, FixedRelationTypes.DefaultRelationType);
                uow.Repositories.AddOrUpdate(parentAnything);
                uow.Repositories.AddOrUpdate(childAnything);

                // Complete the uow which should raise the task as relation proxies aren't added until uow completion
                uow.Complete();

                // Assert the task has been fired
                DoesNotThrow(() => preEventMock.Received(1).Execute(Arg.Any <TaskExecutionContext>()), "Pre-Call was not received 1 times");
                DoesNotThrow(() => postEventMock.Received(1).Execute(Arg.Any <TaskExecutionContext>()), "Post-Call was not received 1 times");
            }
        }
        public void ReadWriteRepositoryUnitOfWorkTests_AddOneRemoveOne_EntityDoesntExist()
        {
            //Arrange
            var    writer = CreateReadWritter();
            HiveId id;

            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                uow.ReadWriteRepository.AddOrUpdate(entity);
                uow.Commit();
                id = entity.Id;
            }

            _sessionForTest.Clear();

            //Act

            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                uow.ReadWriteRepository.Delete <AttributeType>(id);
                uow.Commit();
            }

            //assert
            using (var uow = writer.CreateReadWriteUnitOfWork())
            {
                Assert.IsNull(uow.ReadWriteRepository.GetEntity <AttributeType>(id));
            }

            writer.Dispose();
        }
Beispiel #19
0
        public void IfUnitOfWorkUncomitted_RevisionDataStoreNotUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //act
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity   = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision <TypedEntity>(entity);

                uow.EntityRepository.Revisions.AddOrUpdate(revision);

                id         = revision.Item.Id;
                revisionId = revision.MetaData.Id;
            }

            setup.SessionForTest.Clear();

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, HiveId.Empty);
                Assert.AreNotEqual(revisionId, HiveId.Empty);
                Assert.IsNull(uow.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }
        }
        public void From_TypedEntity_With_Relations_To_NodeVersion()
        {
            //Arrange

            var mapper = new ManualMapper(new FakeLookupHelper(), new FakeHiveProvider());

            mapper.Configure();

            var entityParent = HiveModelCreationHelper.MockTypedEntity(false);

            entityParent.Id = HiveId.ConvertIntToGuid(1);
            var entityChild = HiveModelCreationHelper.MockTypedEntity(false);

            entityChild.Id = HiveId.ConvertIntToGuid(2);

            entityParent.Relations.Add(FixedRelationTypes.ContentTreeRelationType, entityChild);

            //Act

            var resultParent = mapper.Map <TypedEntity, NodeVersion>(entityParent);

            //var resultChild = mapper.Map<TypedEntity, NodeVersion>(entityChild);

            //Assert

            Assert.AreEqual(entityParent.EntitySchema.Alias, resultParent.AttributeSchemaDefinition.Alias);
            Assert.AreEqual(entityParent.Attributes.Count, resultParent.Attributes.Count);
            Assert.AreEqual(entityParent.Relations.Count(), resultParent.Node.OutgoingRelations.Count);
            Assert.AreEqual(entityParent.Relations.Single().Source.Id, resultParent.Node.OutgoingRelations.First().StartNode.Id);
            Assert.AreEqual(entityParent.Relations.Single().Destination.Id, resultParent.Node.OutgoingRelations.First().EndNode.Id);

            //BUG: If you call entityChild.Relations.Count() an infinite loop occurs :(
            //Assert.AreEqual(entityChild.Relations.Count(), resultChild.Node.IncomingRelations.Count);
        }
Beispiel #21
0
        public void OnceUnitOfWorkCommitted_RevisionDataStoreUpdated()
        {
            //Arrange
            var    setup = new NhibernateTestSetupHelper();
            HiveId id;
            HiveId revisionId;

            //Act
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                //var entitySchema = HiveModelCreationHelper.MockEntitySchema("blah-alias", "blah-name");
                var entity   = HiveModelCreationHelper.MockTypedEntity(false);
                var revision = new Revision <TypedEntity>(entity);

                writer.EntityRepository.Revisions.AddOrUpdate(revision);
                writer.Complete();

                id         = revision.Item.Id;
                revisionId = revision.MetaData.Id;
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }

            setup.SessionForTest.Clear();

            //assert
            using (var writer = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.AreNotEqual(id, Guid.Empty);
                Assert.IsNotNull(writer.EntityRepository.Revisions.Get <TypedEntity>(id, revisionId));
            }
        }
Beispiel #22
0
        public void Content_LevelExtensionMethod()
        {
            // Arrange
            var newGuid           = Guid.NewGuid();
            var newGuidRedHerring = Guid.NewGuid();
            var childGuid         = new HiveId(Guid.NewGuid());
            var child1_1Guid      = new HiveId(Guid.NewGuid());
            var child1_2Guid      = new HiveId(Guid.NewGuid());
            var child1_3Guid      = new HiveId(Guid.NewGuid());
            var child1_4Guid      = new HiveId(Guid.NewGuid());
            var child1_1_1Guid    = new HiveId(Guid.NewGuid());
            var child1_1_2Guid    = new HiveId(Guid.NewGuid());
            var child2Guid        = new HiveId(Guid.NewGuid());
            var parent            = HiveModelCreationHelper.SetupTestData(newGuid, newGuidRedHerring, this.Setup.ProviderSetup);
            var child1            = this.AddChildNodeWithId(parent, childGuid, 1);
            var child1_1          = this.AddChildNodeWithId(child1, child1_1Guid, 1);
            var child1_2          = this.AddChildNodeWithId(child1, child1_2Guid, 2);
            var child1_3          = this.AddChildNodeWithId(child1, child1_3Guid, 3);
            var child1_4          = this.AddChildNodeWithId(child1, child1_4Guid, 4);
            var child1_1_1        = this.AddChildNodeWithId(child1_1, child1_1_1Guid, 1);
            var child1_1_2        = this.AddChildNodeWithId(child1_1, child1_1_2Guid, 1);
            var child2            = this.AddChildNodeWithId(parent, child2Guid, 2);

            var child1AsContent     = this.HiveManager.FrameworkContext.TypeMappers.Map <Content>(child1);
            var child1_1_2AsContent = this.HiveManager.FrameworkContext.TypeMappers.Map <Content>(child1_1_2);

            var child1Path = child1AsContent.GetPath(this.HiveManager);

            Assert.That(child1Path.Count(), Is.EqualTo(2), "Path was: " + child1Path.ToString() + ", parent id is: " + parent.Id);
            Assert.That(child1Path.Level, Is.EqualTo(2));
            var child1_1_2Path = child1_1_2AsContent.GetPath(this.HiveManager);

            Assert.That(child1_1_2Path.Count(), Is.EqualTo(4), "Path was: " + child1_1_2Path.ToString() + ", parent id is: " + parent.Id);
        }
Beispiel #23
0
        public void AddOneRemoveOne_EntityDoesntExist()
        {
            //Arrange
            var setup = new NhibernateTestSetupHelper();

            HiveId id;

            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                var entity = HiveModelCreationHelper.CreateAttributeType("alias", "name", "description");
                uow.EntityRepository.Schemas.AddOrUpdate(entity);
                uow.Complete();
                id = entity.Id;
            }

            setup.SessionForTest.Clear();

            //Act

            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                uow.EntityRepository.Schemas.Delete <AttributeType>(id);
                uow.Complete();
            }

            //assert
            using (var uow = setup.ProviderSetup.UnitFactory.Create())
            {
                Assert.IsNull(uow.EntityRepository.Schemas.Get <AttributeType>(id));
            }
        }
        public void WhenEntityIsAdded_PostAddOrUpdateAfterUnitComplete_TaskIsTriggered()
        {
            // Arrange
            var eventMock = Substitute.For <AbstractTask>(_frameworkContext);

            // Act
            _frameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PostAddOrUpdateOnUnitComplete, () => eventMock, true);
            using (var uow = _groupUnitFactory.Create())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

                // Check the task has not yet been fired
                DoesNotThrow(() => eventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Cause the task to be fired
                uow.Repositories.AddOrUpdate(anything);

                // Check the task has still not yet been fired
                DoesNotThrow(() => eventMock.Received(0).Execute(Arg.Any <TaskExecutionContext>()));

                // Complete the unit
                uow.Complete();

                // Assert the task has been fired
                DoesNotThrow(() => eventMock.Received(1).Execute(Arg.Any <TaskExecutionContext>()), "Call was not received 1 times");
            }
        }
Beispiel #25
0
        public void Multiple_NewEntities_WithEmptyIds_AreNotEqual()
        {
            // Arrange
            var entity1 = HiveModelCreationHelper.MockTypedEntity(false);
            var entity2 = HiveModelCreationHelper.MockTypedEntity(false);

            // Assert
            Assert.AreEqual(HiveId.Empty, entity1.Id);
            Assert.AreEqual(HiveId.Empty, entity2.Id);
            Assert.AreNotEqual(entity1, entity2);
        }
        public void RepositoryExtensionsTests_GetIdPaths_SimpleMultiInheritance()
        {
            /*
             * - Root
             *   - Child 1
             *     - Grandchild
             *   - Child 2
             *     - Grandchild
             */

            // Arrange
            var root       = HiveModelCreationHelper.MockTypedEntity();
            var child1     = HiveModelCreationHelper.MockTypedEntity();
            var child2     = HiveModelCreationHelper.MockTypedEntity();
            var grandchild = HiveModelCreationHelper.MockTypedEntity();

            AssignFakeIdsIfPassthrough(ProviderSetup.ProviderMetadata, root, child1, child2, grandchild);

            // Act
            using (var uow = ProviderSetup.UnitFactory.Create())
            {
                // Add entities
                uow.EntityRepository.AddOrUpdate(root);
                uow.EntityRepository.AddOrUpdate(child1);
                uow.EntityRepository.AddOrUpdate(child2);
                uow.EntityRepository.AddOrUpdate(grandchild);

                // Add all relations
                uow.EntityRepository.AddRelation(root, child1, FixedRelationTypes.DefaultRelationType, 0);
                uow.EntityRepository.AddRelation(root, child2, FixedRelationTypes.DefaultRelationType, 0);
                uow.EntityRepository.AddRelation(child1, grandchild, FixedRelationTypes.DefaultRelationType, 1);
                uow.EntityRepository.AddRelation(child2, grandchild, FixedRelationTypes.DefaultRelationType, 2);
                uow.Complete();
            }

            // Assert
            using (var uow = ReadonlyProviderSetup.ReadonlyUnitFactory.CreateReadonly())
            {
                var paths = uow.EntityRepository.GetEntityPaths(grandchild.Id, FixedRelationTypes.DefaultRelationType);

                Assert.IsTrue(paths.DestinationId == grandchild.Id);
                Assert.IsTrue(paths.Count() == 2);
                Assert.IsTrue(paths[0].Count() == 3);
                Assert.IsTrue(paths[0][0] == root.Id);
                Assert.IsTrue(paths[0][1] == child1.Id);
                Assert.IsTrue(paths[0][2] == grandchild.Id);
                Assert.IsTrue(paths[1].Count() == 3);
                Assert.IsTrue(paths[1][0] == root.Id);
                Assert.IsTrue(paths[1][1] == child2.Id);
                Assert.IsTrue(paths[1][2] == grandchild.Id);
            }
        }
Beispiel #27
0
        public void AddingItemsManually_AsParent_CountIsCorrect()
        {
            // Arrange
            var disconnectedParent = HiveModelCreationHelper.MockTypedEntity();
            var disconnectedChild  = HiveModelCreationHelper.MockTypedEntity();
            var rpc = new RelationProxyCollection(disconnectedChild);

            // Act
            rpc.EnlistParent(disconnectedParent, FixedRelationTypes.DefaultRelationType);

            // Assert
            Assert.AreEqual(1, rpc.Count());
            Assert.AreEqual(1, rpc.GetManualProxies().Count());
        }
Beispiel #28
0
        public void QueryAll_WithEntitySchemaAliasCriteria_StaticLinq_AsTypedEntity()
        {
            // Arrange
            var newGuid           = Guid.NewGuid();
            var newGuidRedHerring = Guid.NewGuid();

            HiveModelCreationHelper.SetupTestData(newGuid, newGuidRedHerring, this.Setup.ProviderSetup);

            // Act
            var firstItem = RenderViewModelQueryExtensions.QueryAll <TypedEntity>(this.HiveManager).FirstOrDefault(x => x.EntitySchema.Alias == "redherring-schema");

            // Assert
            Assert.That(firstItem, Is.Not.Null);
        }
Beispiel #29
0
        public void CanSerializeThenDeserializeAttributeGroup()
        {
            AttributeGroup groupDef = HiveModelCreationHelper.CreateAttributeGroup("attrGroupTest", "AttrGropTest", 0, true);

            var result = SerializationService.ToStream(groupDef);

            Assert.That(result.Success, Is.True);
            Assert.That(result.ResultStream, Is.Not.Null);

            object obj = SerializationService.FromStream(result.ResultStream, typeof(AttributeGroup));

            Assert.That(obj, Is.Not.Null);
            Assert.That(obj.GetType(), Is.EqualTo(typeof(AttributeGroup)));
        }
        public void Get_Set_String_Config_Xml_Property()
        {
            //Arrange

            var attributionSchema = HiveModelCreationHelper.CreateEntitySchema("test", "Test", new AttributeDefinition[] { });

            //Act

            attributionSchema.SetXmlConfigProperty("test", "hello");

            //Assert

            Assert.AreEqual("hello", attributionSchema.GetXmlConfigProperty("test"));
        }