public void Can_Reverse_TermGroups()
        {
            var siteTermStore = new TaxonomyTermStoreDefinition
            {
                Id = null,
                Name = string.Empty,
                UseDefaultSiteCollectionTermStore = true
            };

            var termGroup1 = new TaxonomyTermGroupDefinition
            {
                Name = Rnd.String(),
                Id = Rnd.Guid()
            };

            var termGroup2 = new TaxonomyTermGroupDefinition
            {
                Name = Rnd.String(),
                Id = Rnd.Guid()
            };


            
            var model = SPMeta2Model.NewSiteModel(site =>
            {
                site.AddTaxonomyTermStore(siteTermStore, store =>
                {
                    store.AddTaxonomyTermGroup(termGroup1);
                    store.AddTaxonomyTermGroup(termGroup2);
                });

            });

            DeployReverseAndTestModel(model);
        }
 protected TermStore FindTermStore(SiteModelHost siteModelHost, TaxonomyTermStoreDefinition termStoreModel)
 {
     return TaxonomyTermStoreModelHandler.FindTermStore(siteModelHost,
         termStoreModel.Name,
         termStoreModel.Id,
        termStoreModel.UseDefaultSiteCollectionTermStore);
 }
        public void Can_Reverse_TermSets()
        {
            var siteTermStore = new TaxonomyTermStoreDefinition
            {
                Id = null,
                Name = string.Empty,
                UseDefaultSiteCollectionTermStore = true
            };

            var termGroup1 = new TaxonomyTermGroupDefinition
            {
                Name = Rnd.String(),
                Id = Rnd.Guid()
            };

            var termSet1 = new TaxonomyTermSetDefinition
            {
                Name = Rnd.String(),
                Id = Rnd.Guid(),
                Contact = Rnd.String(),
                Description = Rnd.String()
            };

            var termSet2 = new TaxonomyTermSetDefinition
            {
                Name = Rnd.String(),
                Id = Rnd.Guid(),
                Contact = Rnd.String(),
                Description = Rnd.String()
            };

            // only witin a tes term group
            // performance boost
            var groupName = termGroup1.Name;
            var options = ReverseOptions.Default
                .AddFilterOption<TaxonomyTermGroupDefinition>(g => g.Name == groupName);

            var model = SPMeta2Model.NewSiteModel(site =>
            {
                site.AddTaxonomyTermStore(siteTermStore, store =>
                {
                    store.AddTaxonomyTermGroup(termGroup1, group =>
                    {
                        group.AddTaxonomyTermSet(termSet1);
                        group.AddTaxonomyTermSet(termSet2);
                    });
                });

            });

            DeployReverseAndTestModel(model, options);
        }
        public void CanDeploy_TaxonomyTermStoreByUseDefaultSiteCollectionTermStore()
        {
            var termStore = new TaxonomyTermStoreDefinition
            {
                UseDefaultSiteCollectionTermStore = true
            };

            var model = SPMeta2Model
                  .NewSiteModel(site =>
                  {
                      site.AddTaxonomyTermStore(termStore);
                  });

            TestModel(model);
        }
        public override ModelNode ReverseSingleHost(object reverseHost, ReverseOptions options)
        {
            var typedHost = (reverseHost as TaxonomyTermStoreReverseHost);
            var item = typedHost.HostSite;

            var def = new TaxonomyTermStoreDefinition();

            def.UseDefaultSiteCollectionTermStore = true;

            return new TaxonomyTermStoreModelNode
            {
                Options = { RequireSelfProcessing = true },
                Value = def
            };
        }
        public void Can_Reverse_Site_TermStore()
        {
            var siteTermStore = new TaxonomyTermStoreDefinition
            {
                Id = null,
                Name = string.Empty,
                UseDefaultSiteCollectionTermStore = true
            };

            var model = SPMeta2Model.NewSiteModel(site =>
            {
                site.AddTaxonomyTermStore(siteTermStore);

            });

            DeployReverseAndTestModel(model);
        }
        public void CanDeploy_TaxonomyTermStoreByName()
        {
            var termStoreName = ConvertUtils.ToString(RunnerEnvironmentUtils.GetEnvironmentVariable(EnvironmentConsts.DefaultTaxonomyStoreName));
            Assert.IsFalse(string.IsNullOrEmpty(termStoreName));

            var termStore = new TaxonomyTermStoreDefinition
            {
                Name = termStoreName
            };

            var model = SPMeta2Model
                  .NewSiteModel(site =>
                  {
                      site.AddTaxonomyTermStore(termStore);
                  });

            TestModel(model);
        }
 public static ModelNode AddHostTaxonomyTermStore(this ModelNode model, TaxonomyTermStoreDefinition definition, Action<ModelNode> action)
 {
     return model.AddDefinitionNodeWithOptions(definition, action, ModelNodeOptions.New().NoSelfProcessing());
 }
 public static ModelNode AddHostTaxonomyTermStore(this ModelNode model, TaxonomyTermStoreDefinition definition)
 {
     return AddHostTaxonomyTermStore(model, definition, null);
 }
 public static ModelNode AddTaxonomyTermStore(this ModelNode model, TaxonomyTermStoreDefinition definition, Action<ModelNode> action)
 {
     return model.AddDefinitionNode(definition, action);
 }
        public void CanDeploy_TaxonomyTermStoreById()
        {
            var termStoreId = ConvertUtils.ToGuid(RunnerEnvironmentUtils.GetEnvironmentVariable(EnvironmentConsts.DefaultTaxonomyStoreId));
            Assert.IsTrue(termStoreId.HasValue);

            var termStore = new TaxonomyTermStoreDefinition
            {
                Id = termStoreId.Value
            };

            var model = SPMeta2Model
                  .NewSiteModel(site =>
                  {
                      site.AddTaxonomyTermStore(termStore);
                  });

            TestModel(model);
        }