Ejemplo n.º 1
0
        public void Can_Iterate_Over_Multi_Value_Property()
        {
            AttributeTypeRegistry.SetCurrent(new CmsAttributeTypeRegistry());

            SetupContentTest();

            // Make a new content type with a listBox
            var doctype = HiveManager.Cms <IContentStore>()
                          .NewContentType("newsItem")
                          .Define("newsTypes", "listBox", "tab1")
                          .Commit();
            // Make a new revision without specifying properties
            var vals     = new[] { "option1", "option2" };
            var firstRev = HiveManager.Cms().NewRevision("article", "article", "newsItem")
                           .SetValue("newsTypes", vals[0], "val0") //select option1
                           .SetValue("newsTypes", vals[1], "val1") //select option2
                           .Publish()
                           .Commit();

            var bent = new Content(firstRev.Item).Bend(HiveManager, MembershipService, PublicAccessService);

            Assert.NotNull(bent);
            Assert.AreEqual(2, Enumerable.Count(bent.newsTypes));
            for (var i = 0; i < Enumerable.Count(bent.newsTypes); i++)
            {
                //we don't know the order that the values get saved, so we'll just check with contains
                //Assert.Contains(vals[i], bent.newsTypes);
                var val = Enumerable.ElementAt(bent.newsTypes, i).Value;
                Assert.That(vals.Any(x => val == x));
            }
        }
Ejemplo n.º 2
0
        public ActionResult ConsumeHive(int target_id)
        {
            HiveManager.ConsumeHiveNode(Convert.ToInt32(Session["UserId"]), target_id);
            string message = "You gained 10 minions!";

            return(Json(message));
        }
Ejemplo n.º 3
0
        public void FileProvider_ViaManager_GetRelations_DefaultRelationType()
        {
            // Arrange
            var ioTestSetup         = new IoHiveTestSetupHelper();
            var unitFactory         = new ProviderUnitFactory(ioTestSetup.EntityRepositoryFactory);
            var readonlyUnitFactory = new ReadonlyProviderUnitFactory(ioTestSetup.EntityRepositoryFactory);
            var provider            = new ProviderSetup(unitFactory, ioTestSetup.ProviderMetadata, null, null, 0);
            var readonlyProvider    = new ReadonlyProviderSetup(readonlyUnitFactory, ioTestSetup.ProviderMetadata, null, null, 0);

            var providerMappingGroup = new ProviderMappingGroup("default", new WildcardUriMatch("storage://*"), readonlyProvider, provider, ioTestSetup.FrameworkContext);

            var manager = new HiveManager(new[] { providerMappingGroup }, ioTestSetup.FrameworkContext);

            var actualFile = ioTestSetup.TestDirectory.GetFiles(ioTestSetup.Settings.SupportedExtensions, SearchOption.AllDirectories)
                             .Where(x => x.FullName.Replace(ioTestSetup.Settings.AbsoluteRootedPath, string.Empty).Contains(@"\"))
                             .Last();
            var parentFolder = actualFile.Directory;

            // Act
            using (var store = manager.OpenReader <IFileStore>())
            {
                var file                  = store.Repositories.Get <File>(new HiveId(actualFile.FullName));
                var parentRelations       = store.Repositories.GetParentRelations(file.Id, FixedRelationTypes.DefaultRelationType);
                var parentsViaHandyMethod = store.Repositories.GetParentFileRelations(file);
                var firstParentRelation   = store.Repositories.Get <File>(parentRelations.First().SourceId);

                //Assert
                // Check for iterator block mistakes
                Assert.That(parentRelations, Is.EquivalentTo(parentsViaHandyMethod));
                Assert.That(parentRelations.Count(), Is.GreaterThanOrEqualTo(1));
                Assert.AreEqual(parentFolder.FullName.NormaliseDirectoryPath(), firstParentRelation.RootedPath.NormaliseDirectoryPath());
            }
        }
Ejemplo n.º 4
0
        private void buttonAnalyze_Click(object sender, RoutedEventArgs e)
        {
            if (
                MessageBox.Show(Application.Current.MainWindow,
                                "You must close running programs before optimizing the registry.\nPlease save your work and close any running programs now.",
                                Utils.ProductName, MessageBoxButton.OKCancel, MessageBoxImage.Information) != MessageBoxResult.OK)
            {
                return;
            }

            Wizard.IsBusy = true;

            var secureDesktop = new SecureDesktop();

            secureDesktop.Show();

            var analyzeWnd = new Analyze();

            analyzeWnd.ShowDialog();

            secureDesktop.Close();

            Wizard.IsBusy = false;

            // Check registry size before continuing
            if (HiveManager.GetNewRegistrySize() <= 0 || IsCompacted)
            {
                MessageBox.Show(Application.Current.MainWindow,
                                "It appears that the registry has already been compacted.", Utils.ProductName, MessageBoxButton.OK,
                                MessageBoxImage.Error);
                return;
            }

            _scanBase.MoveNext();
        }
Ejemplo n.º 5
0
        public AnalyzeResults(Wizard sb)
        {
            InitializeComponent();

            _scanBase = sb;

            double oldRegistrySize = HiveManager.GetOldRegistrySize(),
                   newRegistrySize = HiveManager.GetNewRegistrySize();

            var oldRegistrySizeMb  = decimal.Round(Convert.ToDecimal(oldRegistrySize) / 1024 / 1024, 2);
            var diffRegistrySizeMb = decimal.Round(Convert.ToDecimal(oldRegistrySize - newRegistrySize) / 1024 / 1024, 2);

            ((PieSeries)McChart.Series[0]).ItemsSource =
                new[]
            {
                new KeyValuePair <string, decimal>($"Registry Size ({oldRegistrySizeMb}MB)",
                                                   oldRegistrySizeMb - diffRegistrySizeMb),
                new KeyValuePair <string, decimal>($"Saving ({diffRegistrySizeMb}MB)", diffRegistrySizeMb)
            };

            if (100 - newRegistrySize / oldRegistrySize * 100 >= 5)
            {
                // Set errors to number of registry hives
                Settings.Default.lastScanErrors = Wizard.RegistryHives.Count;

                McChart.Title = "The Windows Registry Needs To Be Compacted";
            }
            else
            {
                // Properties.Settings.Default.lastScanErrors will still equal 0

                McChart.Title           = "The Windows Registry Does Not Need To Be Compacted";
                ButtonCompact.IsEnabled = false;
            }
        }
Ejemplo n.º 6
0
        public void HiveManagerExtension_GetsProviderMatch_FromCustomRoot(string customRoot)
        {
            // Arrange
            var context  = new FakeFrameworkContext();
            var metadata = new ProviderMetadata("test", new Uri("unimportant://"), true, false);
            var groups   = new[]
            {
                new ProviderMappingGroup("default-content",
                                         new WildcardUriMatch("content://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context),
                new ProviderMappingGroup("default-storage",
                                         new WildcardUriMatch("storage://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context),
                new ProviderMappingGroup("default-assets",
                                         new WildcardUriMatch("assets://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context)
            };
            HiveManager manager = new HiveManager(groups, context);

            // Act
            var work = manager.GetProviderGroup(new Uri(customRoot));

            // Assert
            Assert.NotNull(work);
        }
Ejemplo n.º 7
0
    private void ResetGame()
    {
        currentTime     = 0.0f;
        gameOver        = false;
        hiveManager     = null;
        hiveInitialized = false;
        GameScene       = false;
        enemiesCaught   = 0;
        enemiesSaved    = 0;
        startThings     = false;

        if (PlayerPrefs.GetInt("SavedData") == 1)
        {
            PlayerPrefs.SetInt("TotalCaught", totalEnemiesCaught + PlayerPrefs.GetInt("TotalCaught"));
            PlayerPrefs.SetInt("TotalSaved", totalEnemiesSaved + PlayerPrefs.GetInt("TotalSaved"));
        }
        else
        {
            PlayerPrefs.SetInt("TotalCaught", totalEnemiesCaught);
            PlayerPrefs.SetInt("TotalSaved", totalEnemiesSaved);
            PlayerPrefs.SetInt("SavedData", 1);
        }

        PlayerPrefs.Save();

        SceneManager.LoadScene(0);
    }
Ejemplo n.º 8
0
        public void HiveManager_OpensContentWriter_InferredFromRepositoryType()
        {
            // Arrange
            var context  = new FakeFrameworkContext();
            var metadata = new ProviderMetadata("test", new Uri("unimportant://"), true, false);
            var groups   = new[]
            {
                new ProviderMappingGroup("default-content",
                                         new WildcardUriMatch("content://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context),
                new ProviderMappingGroup("default-storage",
                                         new WildcardUriMatch("storage://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context),
                new ProviderMappingGroup("default-assets",
                                         new WildcardUriMatch("assets://*"),
                                         new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0),
                                         context)
            };
            HiveManager manager = new HiveManager(groups, context);

            // Act
            var writer = manager.OpenWriter <IContentStore>();

            // Assert
            Assert.IsNotNull(writer);
        }
Ejemplo n.º 9
0
        public void DataInstallTest_CoreData_NHibernate()
        {
            //Arrange

            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hiveManager =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://file-uploader")
            },
                    nhibernateTestSetup.FakeFrameworkContext);

            RunTest(hiveManager, nhibernateTestSetup.FakeFrameworkContext, () =>
            {
                nhibernateTestSetup.SessionForTest.Clear();
                hiveManager.Context.GenerationScopedCache.Clear();
            });

            hiveManager.Dispose();
        }
Ejemplo n.º 10
0
        public void DataInstallTest_CoreData_Examine()
        {
            //Arrange

            var examineTestSetup = new ExamineTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(examineTestSetup.FrameworkContext);

            var hiveManager =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                examineTestSetup.ReadonlyProviderSetup,
                                examineTestSetup.ProviderSetup,
                                examineTestSetup.FrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader")

                        },
                    examineTestSetup.FrameworkContext);

            RunTest(hiveManager, examineTestSetup.FrameworkContext, () =>
            {
                hiveManager.Context.GenerationScopedCache.Clear();
            });

            hiveManager.Dispose();
        }
Ejemplo n.º 11
0
        private void ActivateWaggleDance()
        {
            if (waggleCollected <= 0)
            {
                return;
            }

            bool didDance = false;

            if (curTarget != null)
            {
                if (curTarget.CompareTag("Enemy"))
                {
                    // This currently just feels like a different version of the free sting...
                    Debug.Log("here: " + curTarget.name);
                    FindObjectOfType <StingBehavior>().FinishSting(1, 1, curTarget);
                    didDance = true;
                }
                else if (curTarget.CompareTag("Collectible"))
                {
                    CollectibleBehavior cb = curTarget.GetComponent <CollectibleBehavior>();
                    if (cb == null)
                    {
                        return;
                    }

                    if (cb.collectibleType == CollectibleType.Pollen)
                    {
                        cb.SendMessage("ControllerCollisionListener", new object[] { GetComponent <PlayerControl>(), 2 });
                        didDance = true;
                    }
                }
                else if (curTarget.CompareTag("Hive"))
                {
                    HiveManager hm = FindObjectOfType <HiveManager>();
                    hm.ActivateHiveDefence();
                    didDance = true;
                }
            }
            else
            {
                // Our third dance, Shock, isn't needed till level 3. I'm thinking this is some sort of AoE attack?
                // However, I don't know what the best way to trigger it would be, and if this `else` case is enough.

                // temp
                didDance = false;
            }

            if (didDance)
            {
                Instantiate(swarmVfx, curTarget.transform.position, Quaternion.identity);
                AudioSource.PlayClipAtPoint(danceMusic, transform.position, 1f);
                curPowerup     = PlayerPowerup.WaggleDance;
                powerupTimeout = waggleDanceDuration;
                waggleCollected--;
                gui.UpdateGUI(PlayerPowerup.WaggleDance, waggleCollected);
            }
        }
Ejemplo n.º 12
0
        private void RunTest(
            HiveManager hiveManager,
            FakeFrameworkContext frameworkContext,
            Action installCallback = null)
        {
            var attributeTypeRegistry = new CmsAttributeTypeRegistry();

            AttributeTypeRegistry.SetCurrent(attributeTypeRegistry);
            var appContext = new FakeUmbracoApplicationContext(hiveManager, false);
            var mockedPropertyEditorFactory = new MockedPropertyEditorFactory(appContext);
            var resolverContext             = new MockedMapResolverContext(frameworkContext, hiveManager, mockedPropertyEditorFactory, new MockedParameterEditorFactory());
            var webmModelMapper             = new CmsModelMapper(resolverContext);

            frameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, new FrameworkModelMapper(frameworkContext) }));

            var devDataset = DemoDataHelper.GetDemoData(appContext, attributeTypeRegistry);

            //Seup permissions
            var permissions = new Permission[] { new SavePermission(), new PublishPermission(), new HostnamesPermission(), new CopyPermission(), new MovePermission() }
            .Select(x => new Lazy <Permission, PermissionMetadata>(() => x, new PermissionMetadata(new Dictionary <string, object>
            {
                { "Id", x.Id },
                { "Name", x.Name },
                { "Type", x.Type }
            }))).ToArray();

            var coreDataInstallTask   = new EnsureCoreDataTask(frameworkContext, hiveManager, permissions);
            var devDatasetInstallTask = new DevDatasetInstallTask(frameworkContext, mockedPropertyEditorFactory, hiveManager, attributeTypeRegistry);

            //Act

            coreDataInstallTask.InstallOrUpgrade();
            if (installCallback != null)
            {
                installCallback();
            }
            devDatasetInstallTask.InstallOrUpgrade();
            if (installCallback != null)
            {
                installCallback();
            }

            //Assert

            var totalSchemaCount = CoreCmsData.RequiredCoreSchemas().Count() + devDataset.DocTypes.Count() + 1; // +1 for SystemRoot schema
            var totalEntityCount =
                CoreCmsData.RequiredCoreUserGroups(permissions).Count() +
                CoreCmsData.RequiredCoreRootNodes().Count() +
                devDataset.ContentData.Count();
            var totalAttributeTypeCount = CoreCmsData.RequiredCoreSystemAttributeTypes().Count() + CoreCmsData.RequiredCoreUserAttributeTypes().Count();

            DoCoreAssertions(hiveManager, totalSchemaCount, totalEntityCount, totalAttributeTypeCount, 2, permissions);
        }
Ejemplo n.º 13
0
        void Start()
        {
            lm      = FindObjectOfType <LevelManager>();
            eb      = GetComponent <EnemyBehaviour>();
            hm      = FindObjectOfType <HiveManager>();
            ebFound = eb != null;

            if (!ebFound)
            {
                eb      = GetComponentInParent <EnemyBehaviour>();
                ebFound = eb != null;
            }
        }
Ejemplo n.º 14
0
        private static void HiveGenerationEvent(object source, ElapsedEventArgs e)
        {
            Console.WriteLine("Hive generation started");
            //generate new hives in top 10% event saturated locs, lower event saturation
            List <UserMovementHistory> umh = UsersManager.GetHighestEventSaturationLocations((decimal)0.1);

            foreach (UserMovementHistory u in umh)
            {
                HiveNode h = HiveManager.generateRandomHive(u.location);
                UsersManager.UpdateEventSaturations(u.location, -5);
                Console.WriteLine("Hive generated: " + h.location.Latitude + " | " + h.location.Longitude);
            }
        }
        public IHiveManager GetHiveManager()
        {
            IFrameworkContext frameworkContext = GetFrameworkContext();

            var providerMetadata = new ProviderMetadata("p__nhibernate", new Uri("content://"), true, false);

            var builder =
                new NHibernateConfigBuilder(
                    ConfigurationManager.ConnectionStrings["DatabaseConnString"].ConnectionString,
                    "unit-tester", SupportedNHDrivers.MsSql2008, "call", false, false);

            NhConfigurationCacheKey cacheKey;
            Configuration config = builder.BuildConfiguration(false, out cacheKey);

            var nhHelper = new NhFactoryHelper(config, null, false, false, frameworkContext);

            ProviderDependencyHelper dependencyHelper = new DependencyHelper(nhHelper, providerMetadata);
            var revisionRepositoryFactory = new RevisionRepositoryFactory(providerMetadata, frameworkContext,
                                                                          dependencyHelper);

            var revisionSchemaSessionFactory = new NullProviderRevisionRepositoryFactory<EntitySchema>(providerMetadata,
                                                                                                       frameworkContext);
            var schemaRepositoryFactory = new SchemaRepositoryFactory(providerMetadata, revisionSchemaSessionFactory,
                                                                      frameworkContext, dependencyHelper);

            var entityRepositoryFactory = new EntityRepositoryFactory(providerMetadata, revisionRepositoryFactory,
                                                          schemaRepositoryFactory, frameworkContext,
                                                          dependencyHelper);

            ProviderSetup singleWriter = GetWriterProvider(providerMetadata, frameworkContext, entityRepositoryFactory);

            ReadonlyProviderSetup singleReader = GetReaderProvider(providerMetadata, revisionRepositoryFactory,
                                                                   schemaRepositoryFactory, frameworkContext,
                                                                   dependencyHelper, config);

            Func<AbstractMappingEngine> addTypemapper = () => new ManualMapperv2(new NhLookupHelper(entityRepositoryFactory), providerMetadata);
            frameworkContext.TypeMappers.Add(new Lazy<AbstractMappingEngine, TypeMapperMetadata>(addTypemapper, new TypeMapperMetadata(true)));
            IHiveManager hive = new HiveManager(new[]
                                                    {
                                                        new ProviderMappingGroup(
                                                            "test",
                                                            new WildcardUriMatch("content://"),
                                                            singleReader,
                                                            singleWriter,
                                                            frameworkContext)
                                                    }, frameworkContext);
            return hive;
        }
Ejemplo n.º 16
0
        public void TestSetup()
        {
            this.Setup           = new NhibernateTestSetupHelper();
            this._singleProvider = new ProviderMappingGroup("default", new WildcardUriMatch(new Uri("content://")), this.Setup.ReadonlyProviderSetup, this.Setup.ProviderSetup, this.Setup.FakeFrameworkContext);
            this.HiveManager     = new HiveManager(this._singleProvider, this._singleProvider.FrameworkContext);

            this._appContext = new FakeUmbracoApplicationContext(this.HiveManager, false);

            this._resolverContext = new MockedMapResolverContext(this.HiveManager.FrameworkContext, this.HiveManager, new MockedPropertyEditorFactory(this._appContext), new MockedParameterEditorFactory());

            //mappers
            var cmsModelMapper = new CmsModelMapper(this._resolverContext);
            var persistenceToRenderModelMapper = new RenderTypesModelMapper(this._resolverContext);

            this.Setup.FakeFrameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { cmsModelMapper, persistenceToRenderModelMapper }));
        }
Ejemplo n.º 17
0
        private void SetupContentTest()
        {
            AttributeTypeRegistry.SetCurrent(new CmsAttributeTypeRegistry());

            // Ensure parent schema and content root exists for this test
            var contentVirtualRoot = FixedEntities.ContentVirtualRoot;
            var systemRoot         = new SystemRoot();
            var contentRootSchema  = new ContentRootSchema();

            HiveManager.AutoCommitTo <IContentStore>(
                x =>
            {
                x.Repositories.AddOrUpdate(systemRoot);
                x.Repositories.AddOrUpdate(contentVirtualRoot);
                x.Repositories.Schemas.AddOrUpdate(contentRootSchema);
            });
        }
Ejemplo n.º 18
0
        private static HiveManager GetHiveForTest()
        {
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);


            var hive =
                new HiveManager(
                    new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://")
            },
                    nhibernateTestSetup.FakeFrameworkContext);

            return(hive);
        }
        public void Integration_WhenEntityIsAdded_EnsureUniqueNameTask_RenamesItemIfNotUnique()
        {
            IHiveManager hive = null;

            try
            {
                var nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf: true);

                var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

                hive = new HiveManager(
                    new[]
                {
                    new ProviderMappingGroup(
                        "test",
                        new WildcardUriMatch("content://"),
                        nhibernateTestSetup.ReadonlyProviderSetup,
                        nhibernateTestSetup.ProviderSetup,
                        nhibernateTestSetup.FakeFrameworkContext),
                    storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                },
                    nhibernateTestSetup.FakeFrameworkContext);


                SetupContentTest(hive);

                hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Revisions.PreAddOrUpdateOnUnitComplete,
                                                          () => new EnsureUniqueNameTask(hive.FrameworkContext),
                                                          true);

                hive.Cms().NewContentType("test-for-dupes")
                .Define("sometext", "singleLineTextBox", "tab1")
                .Commit();

                var parent = hive.Cms().NewRevision("My site root", "root", "test-for-dupes")
                             .SetValue("sometext", "hallow")
                             .Publish()
                             .Commit();

                var firstItem = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                .SetValue("sometext", "hallow")
                                .SetParent(parent.Item)
                                .Publish()
                                .Commit();

                var firstUnDupedItem = hive.Cms().NewRevision("My Name Unpublished", "my-name-unpublished", "test-for-dupes")
                                       .SetValue("sometext", "hallow")
                                       .SetParent(parent.Item)
                                       .Publish()
                                       .Commit();

                var shouldBeModified = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                       .SetValue("sometext", "hallow")
                                       .SetParent(parent.Item)
                                       .Publish()
                                       .Commit();

                var shouldBeModified2 = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                                        .SetValue("sometext", "hallow")
                                        .SetParent(parent.Item)
                                        .Publish()
                                        .Commit();

                Assert.That(shouldBeModified.Success, Is.True);
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified.Item.Id));
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));
                Assert.That(shouldBeModified.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));

                hive.Context.GenerationScopedCache.Clear();

                var queryForName = hive.Cms().QueryContent().Where(x => x.InnerAttribute <string>(NodeNameAttributeDefinition.AliasValue, "Name") == "My Name").ToList();
                Assert.That(queryForName.Count, Is.EqualTo(1));

                hive.Context.GenerationScopedCache.Clear();

                using (var uow = hive.OpenReader <IContentStore>())
                {
                    var checkFirstItem    = uow.Repositories.Get(firstItem.Item.Id);
                    var checkRenamedItem  = uow.Repositories.Get(shouldBeModified.Item.Id);
                    var checkRenamedItem2 = uow.Repositories.Get(shouldBeModified2.Item.Id);

                    var firstItemName         = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName  = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];

                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName));
                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.EqualTo("My Name (1)"));
                    Assert.That(checkRenamedItemName2, Is.EqualTo("My Name (2)"));

                    var firstItemUrlName         = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName  = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];

                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName));
                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.EqualTo("my-name-1"));
                    Assert.That(checkRenamedItemUrlName2, Is.EqualTo("my-name-2"));
                }
            }
            finally
            {
                hive.IfNotNull(x => x.Dispose());
            }
        }
Ejemplo n.º 20
0
        private static HiveManager GetHiveForTest()
        {
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);


            var hive =
                new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://")
                        },
                    nhibernateTestSetup.FakeFrameworkContext);

            return hive;
        }
        public void WhenEntityIsAdded_PreAddOrUpdateBeforeUnitComplete_TaskChangesItem_ItemIsSavedWithNewValues()
        {
            // Arrange
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hive = new HiveManager(
                new[]
            {
                new ProviderMappingGroup(
                    "test",
                    new WildcardUriMatch("content://"),
                    nhibernateTestSetup.ReadonlyProviderSetup,
                    nhibernateTestSetup.ProviderSetup,
                    nhibernateTestSetup.FakeFrameworkContext),
                storageProvider.CreateGroup("uploader", "storage://file-uploader"),
            },
                nhibernateTestSetup.FakeFrameworkContext);

            var eventMock = Substitute.For <AbstractTask>(hive.FrameworkContext);

            eventMock.When(x => x.Execute(Arg.Any <TaskExecutionContext>()))
            .Do(x =>
            {
                var context = x.Args()[0] as TaskExecutionContext;
                if (context != null)
                {
                    var uow  = context.EventSource as IGroupUnit <IProviderTypeFilter>;
                    var args = context.EventArgs.CallerEventArgs as HiveEntityPreActionEventArgs;
                    if (uow != null && args != null)
                    {
                        var item = args.Entity as TypedEntity;
                        if (item != null &&
                            item.Attributes.Any(
                                y => y.AttributeDefinition.Alias == NodeNameAttributeDefinition.AliasValue))
                        {
                            item.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"] = "Something else";

                            uow.Repositories.AddOrUpdate(item);
                        }
                    }
                }
            });

            // Act
            hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdateOnUnitComplete, () => eventMock, true);

            var id = HiveId.Empty;

            using (var uow = hive.OpenWriter <IContentStore>())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

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

                id = anything.Id;
            }

            using (var uow = hive.OpenWriter <IContentStore>())
            {
                // Cause the task to be fired
                var getItem = uow.Repositories.Get(id); // Store is mocked

                Assert.NotNull(getItem);

                // Assert the task has been fired
                Assert.AreEqual("Something else", getItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"]);
            }
        }
Ejemplo n.º 22
0
        public void FileProvider_ViaManager_GetRelations_DefaultRelationType()
        {
            // Arrange
            var ioTestSetup = new IoHiveTestSetupHelper();
            var unitFactory = new ProviderUnitFactory(ioTestSetup.EntityRepositoryFactory);
            var readonlyUnitFactory = new ReadonlyProviderUnitFactory(ioTestSetup.EntityRepositoryFactory);
            var provider = new ProviderSetup(unitFactory, ioTestSetup.ProviderMetadata, null, null, 0);
            var readonlyProvider = new ReadonlyProviderSetup(readonlyUnitFactory, ioTestSetup.ProviderMetadata, null, null, 0);

            var providerMappingGroup = new ProviderMappingGroup("default", new WildcardUriMatch("storage://*"), readonlyProvider, provider, ioTestSetup.FrameworkContext);

            var manager = new HiveManager(new[] { providerMappingGroup }, ioTestSetup.FrameworkContext);

            var actualFile = ioTestSetup.TestDirectory.GetFiles(ioTestSetup.Settings.SupportedExtensions, SearchOption.AllDirectories)
                .Where(x => x.FullName.Replace(ioTestSetup.Settings.AbsoluteRootedPath, string.Empty).Contains(@"\"))
                .Last();
            var parentFolder = actualFile.Directory;

            // Act
            using (var store = manager.OpenReader<IFileStore>())
            {
                var file = store.Repositories.Get<File>(new HiveId(actualFile.FullName));
                var parentRelations = store.Repositories.GetParentRelations(file.Id, FixedRelationTypes.DefaultRelationType);
                var parentsViaHandyMethod = store.Repositories.GetParentFileRelations(file);
                var firstParentRelation = store.Repositories.Get<File>(parentRelations.First().SourceId);

                //Assert
                // Check for iterator block mistakes
                Assert.That(parentRelations, Is.EquivalentTo(parentsViaHandyMethod));
                Assert.That(parentRelations.Count(), Is.GreaterThanOrEqualTo(1));
                Assert.AreEqual(parentFolder.FullName.NormaliseDirectoryPath(), firstParentRelation.RootedPath.NormaliseDirectoryPath());
            }
        }
Ejemplo n.º 23
0
        private void RunTest(
            HiveManager hiveManager,
            FakeFrameworkContext frameworkContext,
            Action installCallback = null)
        {
            var attributeTypeRegistry = new CmsAttributeTypeRegistry();

            AttributeTypeRegistry.SetCurrent(attributeTypeRegistry);
            var appContext = new FakeRebelApplicationContext(hiveManager, false);
            var mockedPropertyEditorFactory = new MockedPropertyEditorFactory(appContext);
            var resolverContext             = new MockedMapResolverContext(frameworkContext, hiveManager, mockedPropertyEditorFactory, new MockedParameterEditorFactory());
            var webmModelMapper             = new CmsModelMapper(resolverContext);

            frameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, new FrameworkModelMapper(frameworkContext) }));

            var devDataset = DemoDataHelper.GetDemoData(appContext, attributeTypeRegistry);

            //Setup permissions
            var permissions = new Permission[] { new SavePermission(), new PublishPermission(), new HostnamesPermission(), new CopyPermission(), new MovePermission() }
            .Select(x => new Lazy <Permission, PermissionMetadata>(() => x, new PermissionMetadata(new Dictionary <string, object>
            {
                { "Id", x.Id },
                { "Name", x.Name },
                { "Type", x.Type },
                { "UserType", x.UserType }
            }))).ToArray();

            //Setup security service
            var usersMembershipProvider = new UsersMembershipProvider {
                AppContext = appContext
            };

            usersMembershipProvider.Initialize("UsersMembershipProvider", new NameValueCollection());
            var usersMembershipService = new MembershipService <User, UserProfile>(frameworkContext, hiveManager,
                                                                                   "security://user-profiles", "security://user-groups", Framework.Security.Model.FixedHiveIds.UserProfileVirtualRoot,
                                                                                   usersMembershipProvider, Enumerable.Empty <MembershipProviderElement>());

            ResetMembershipProvider(usersMembershipService.MembershipProvider);

            var membersMembershipProvider = new MembersMembershipProvider {
                AppContext = appContext
            };

            membersMembershipProvider.Initialize("MembersMembershipProvider", new NameValueCollection());
            var membersMembershipService = new MembershipService <Member, MemberProfile>(frameworkContext, hiveManager,
                                                                                         "security://member-profiles", "security://member-groups", Framework.Security.Model.FixedHiveIds.MemberProfileVirtualRoot,
                                                                                         membersMembershipProvider, Enumerable.Empty <MembershipProviderElement>());

            ResetMembershipProvider(membersMembershipService.MembershipProvider);

            var permissionService   = new PermissionsService(hiveManager, permissions, usersMembershipService);
            var publicAccessService = new PublicAccessService(hiveManager, membersMembershipService, appContext.FrameworkContext);
            var securityService     = new SecurityService(usersMembershipService, membersMembershipService, permissionService, publicAccessService);

            var coreDataInstallTask = new EnsureCoreDataTask(frameworkContext, hiveManager, permissions, securityService);

            //var devDatasetInstallTask = new DevDatasetInstallTask(frameworkContext, mockedPropertyEditorFactory, hiveManager, attributeTypeRegistry);

            //Act

            coreDataInstallTask.InstallOrUpgrade();
            if (installCallback != null)
            {
                installCallback();
            }
            //devDatasetInstallTask.InstallOrUpgrade();
            //if (installCallback != null) installCallback();

            //Assert

            var totalSchemaCount = CoreCmsData.RequiredCoreSchemas().Count() + devDataset.DocTypes.Count() + 1; // +1 for SystemRoot schema
            var totalEntityCount =
                CoreCmsData.RequiredCoreUserGroups(permissions).Count() +
                CoreCmsData.RequiredCoreRootNodes().Count() +
                devDataset.ContentData.Count();
            var totalAttributeTypeCount = CoreCmsData.RequiredCoreSystemAttributeTypes().Count() + CoreCmsData.RequiredCoreUserAttributeTypes().Count();

            DoCoreAssertions(hiveManager, totalSchemaCount, totalEntityCount, totalAttributeTypeCount, 2, permissions, securityService);

            //CoreCmsData.RequiredCoreUsers().ForEach(
            //    x =>
            //    {
            //        securityService.UsersMembershipService.DeleteUser(x.Username, true);
            //        securityService.MembersMembershipService.DeleteUser(x.Username, true);
            //    });

            ResetMembershipProvider(securityService.Users.MembershipProvider);
            ResetMembershipProvider(securityService.Members.MembershipProvider);
        }
Ejemplo n.º 24
0
        public void HiveManager_OpensContentWriter_InferredFromRepositoryType()
        {
            // Arrange
            var context = new FakeFrameworkContext();
            var metadata = new ProviderMetadata("test", new Uri("unimportant://"), true, false);
            var groups = new[]
                             {
                                 new ProviderMappingGroup("default-content",
                                                          new WildcardUriMatch("content://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context),
                                 new ProviderMappingGroup("default-storage",
                                                          new WildcardUriMatch("storage://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context),
                                 new ProviderMappingGroup("default-assets",
                                                          new WildcardUriMatch("assets://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context)
                             };
            HiveManager manager = new HiveManager(groups , context);

            // Act
            var writer = manager.OpenWriter<IContentStore>();

            // Assert
            Assert.IsNotNull(writer);
        }
Ejemplo n.º 25
0
        public void HiveManagerExtension_GetsProviderMatch_FromCustomRoot(string customRoot)
        {
            // Arrange
            var context = new FakeFrameworkContext();
            var metadata = new ProviderMetadata("test", new Uri("unimportant://"), true, false);
            var groups = new[]
                             {
                                 new ProviderMappingGroup("default-content",
                                                          new WildcardUriMatch("content://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context),
                                 new ProviderMappingGroup("default-storage",
                                                          new WildcardUriMatch("storage://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context),
                                 new ProviderMappingGroup("default-assets",
                                                          new WildcardUriMatch("assets://*"),
                                                          new UninstalledReadonlyProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          new UninstalledProviderSetup(metadata, context, new NoopProviderBootstrapper(), 0), 
                                                          context)
                             };
            HiveManager manager = new HiveManager(groups, context);

            // Act
            var work = manager.GetProviderGroup(new Uri(customRoot));

            // Assert
            Assert.NotNull(work);
        }
        public void Integration_WhenEntityIsAdded_EnsureUniqueNameTask_RenamesItemIfNotUnique()
        {
            IHiveManager hive = null;
            try
            {
                var nhibernateTestSetup = new NhibernateTestSetupHelper(useNhProf:true);

                var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

                hive = new HiveManager(
                        new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                        },
                        nhibernateTestSetup.FakeFrameworkContext);


                SetupContentTest(hive);

                hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.Revisions.PreAddOrUpdateOnUnitComplete,
                                          () => new EnsureUniqueNameTask(hive.FrameworkContext),
                                          true);

                hive.Cms().NewContentType("test-for-dupes")
                    .Define("sometext", "singleLineTextBox", "tab1")
                    .Commit();

                var parent = hive.Cms().NewRevision("My site root", "root", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .Publish()
                    .Commit();

                var firstItem = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var firstUnDupedItem = hive.Cms().NewRevision("My Name Unpublished", "my-name-unpublished", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var shouldBeModified = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                var shouldBeModified2 = hive.Cms().NewRevision("My Name", "my-name", "test-for-dupes")
                    .SetValue("sometext", "hallow")
                    .SetParent(parent.Item)
                    .Publish()
                    .Commit();

                Assert.That(shouldBeModified.Success, Is.True);
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified.Item.Id));
                Assert.That(firstItem.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));
                Assert.That(shouldBeModified.Item.Id, Is.Not.EqualTo(shouldBeModified2.Item.Id));

                hive.Context.GenerationScopedCache.Clear();

                var queryForName = hive.Cms().QueryContent().Where(x => x.InnerAttribute<string>(NodeNameAttributeDefinition.AliasValue, "Name") == "My Name").ToList();
                Assert.That(queryForName.Count, Is.EqualTo(1));

                hive.Context.GenerationScopedCache.Clear();

                using(var uow = hive.OpenReader<IContentStore>())
                {
                    var checkFirstItem = uow.Repositories.Get(firstItem.Item.Id);
                    var checkRenamedItem = uow.Repositories.Get(shouldBeModified.Item.Id);
                    var checkRenamedItem2 = uow.Repositories.Get(shouldBeModified2.Item.Id);

                    var firstItemName = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];
                    var checkRenamedItemName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"];

                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName));
                    Assert.That(firstItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.Not.EqualTo(checkRenamedItemName2));
                    Assert.That(checkRenamedItemName, Is.EqualTo("My Name (1)"));
                    Assert.That(checkRenamedItemName2, Is.EqualTo("My Name (2)"));

                    var firstItemUrlName = checkFirstItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName = checkRenamedItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];
                    var checkRenamedItemUrlName2 = checkRenamedItem2.Attributes[NodeNameAttributeDefinition.AliasValue].Values["UrlName"];

                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName));
                    Assert.That(firstItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.Not.EqualTo(checkRenamedItemUrlName2));
                    Assert.That(checkRenamedItemUrlName, Is.EqualTo("my-name-1"));
                    Assert.That(checkRenamedItemUrlName2, Is.EqualTo("my-name-2"));
                }
            }
            finally
            {
                hive.IfNotNull(x => x.Dispose());
            }
            
        }
Ejemplo n.º 27
0
        private void RunTest(
            HiveManager hiveManager,
            FakeFrameworkContext frameworkContext,
            Action installCallback = null)
        {
            var attributeTypeRegistry = new CmsAttributeTypeRegistry();
            AttributeTypeRegistry.SetCurrent(attributeTypeRegistry);
            var appContext = new FakeUmbracoApplicationContext(hiveManager, false);
            var mockedPropertyEditorFactory = new MockedPropertyEditorFactory(appContext);
            var resolverContext = new MockedMapResolverContext(frameworkContext, hiveManager, mockedPropertyEditorFactory, new MockedParameterEditorFactory());
            var webmModelMapper = new CmsModelMapper(resolverContext);
            frameworkContext.SetTypeMappers(new FakeTypeMapperCollection(new AbstractMappingEngine[] { webmModelMapper, new FrameworkModelMapper(frameworkContext) }));

            var devDataset = DemoDataHelper.GetDemoData(appContext, attributeTypeRegistry);

            //Seup permissions
            var permissions = new Permission[] { new SavePermission(), new PublishPermission(), new HostnamesPermission(), new CopyPermission(), new MovePermission() }
                .Select(x => new Lazy<Permission, PermissionMetadata>(() => x, new PermissionMetadata(new Dictionary<string, object>
                    {
                        {"Id", x.Id},
                        {"Name", x.Name},
                        {"Type", x.Type}
                    }))).ToArray();

            var coreDataInstallTask = new EnsureCoreDataTask(frameworkContext, hiveManager, permissions);
            var devDatasetInstallTask = new DevDatasetInstallTask(frameworkContext, mockedPropertyEditorFactory, hiveManager, attributeTypeRegistry);

            //Act

            coreDataInstallTask.InstallOrUpgrade();
            if (installCallback != null) installCallback();
            devDatasetInstallTask.InstallOrUpgrade();
            if (installCallback != null) installCallback();

            //Assert

            var totalSchemaCount = CoreCmsData.RequiredCoreSchemas().Count() + devDataset.DocTypes.Count() + 1; // +1 for SystemRoot schema
            var totalEntityCount =
                CoreCmsData.RequiredCoreUserGroups(permissions).Count() +
                CoreCmsData.RequiredCoreRootNodes().Count() +
                devDataset.ContentData.Count();
            var totalAttributeTypeCount = CoreCmsData.RequiredCoreSystemAttributeTypes().Count() + CoreCmsData.RequiredCoreUserAttributeTypes().Count();
            DoCoreAssertions(hiveManager, totalSchemaCount, totalEntityCount, totalAttributeTypeCount, 2, permissions);
        }
        public void WhenEntityIsAdded_PreAddOrUpdateBeforeUnitComplete_TaskChangesItem_ItemIsSavedWithNewValues()
        {
            // Arrange
            var nhibernateTestSetup = new NhibernateTestSetupHelper();

            var storageProvider = new IoHiveTestSetupHelper(nhibernateTestSetup.FakeFrameworkContext);

            var hive = new HiveManager(
                    new[]
                        {
                            new ProviderMappingGroup(
                                "test",
                                new WildcardUriMatch("content://"),
                                nhibernateTestSetup.ReadonlyProviderSetup,
                                nhibernateTestSetup.ProviderSetup,
                                nhibernateTestSetup.FakeFrameworkContext),
                            storageProvider.CreateGroup("uploader", "storage://file-uploader"),
                        },
                    nhibernateTestSetup.FakeFrameworkContext);

            var eventMock = Substitute.For<AbstractTask>(hive.FrameworkContext);
            eventMock.When(x => x.Execute(Arg.Any<TaskExecutionContext>()))
                .Do(x =>
            {
                var context = x.Args()[0] as TaskExecutionContext;
                if(context != null)
                {
                    var uow = context.EventSource as IGroupUnit<IProviderTypeFilter>;
                    var args = context.EventArgs.CallerEventArgs as HiveEntityPreActionEventArgs;
                    if (uow != null && args != null)
                    {
                        var item = args.Entity as TypedEntity;
                        if (item != null &&
                            item.Attributes.Any(
                                y => y.AttributeDefinition.Alias == NodeNameAttributeDefinition.AliasValue))
                        {
                            item.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"] = "Something else";

                            uow.Repositories.AddOrUpdate(item);
                        }
                    }
                }
            });

            // Act
            hive.FrameworkContext.TaskManager.AddTask(TaskTriggers.Hive.PreAddOrUpdateOnUnitComplete, () => eventMock, true);

            var id = HiveId.Empty;

            using (var uow = hive.OpenWriter<IContentStore>())
            {
                var anything = HiveModelCreationHelper.MockTypedEntity();

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

                id = anything.Id;
            }

            using (var uow = hive.OpenWriter<IContentStore>())
            {
                // Cause the task to be fired
                var getItem = uow.Repositories.Get(id); // Store is mocked

                Assert.NotNull(getItem);

                // Assert the task has been fired
                Assert.AreEqual("Something else", getItem.Attributes[NodeNameAttributeDefinition.AliasValue].Values["Name"]);
            }
        }