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)); } }
public ActionResult ConsumeHive(int target_id) { HiveManager.ConsumeHiveNode(Convert.ToInt32(Session["UserId"]), target_id); string message = "You gained 10 minions!"; return(Json(message)); }
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()); } }
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(); }
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; } }
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); }
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); }
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); }
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(); }
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(); }
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); } }
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); }
void Start() { lm = FindObjectOfType <LevelManager>(); eb = GetComponent <EnemyBehaviour>(); hm = FindObjectOfType <HiveManager>(); ebFound = eb != null; if (!ebFound) { eb = GetComponentInParent <EnemyBehaviour>(); ebFound = eb != null; } }
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; }
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 })); }
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); }); }
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()); } }
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"]); } }
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()); } }
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); }
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); }
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()); } }
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"]); } }