public void ReadingElementSetsName() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo"), builder); var type = builder.Build(); Assert.That(type.Name, Is.EqualTo("foo")); }
public static void AlterTypeDefinition(this IContentDefinitionManager manager, string name, Action<ContentTypeDefinitionBuilder> alteration) { var typeDefinition = manager.GetTypeDefinition(name) ?? new ContentTypeDefinition(name, name.CamelFriendly()); var builder = new ContentTypeDefinitionBuilder(typeDefinition); alteration(builder); manager.StoreTypeDefinition(builder.Build()); }
public void AttributesAreAppliedAsSettings() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XAttribute("x", "1")), builder); var type = builder.Build(); Assert.That(type.Settings["x"], Is.EqualTo("1")); }
public void CanAlterPartSettingsByNameDuringRebuild() { var contentTypeDefinition1 = new ContentTypeDefinitionBuilder() .Named("alpha") .WithPart("foo", pb => pb.WithSetting("x", "10").WithSetting("y", "11")) .Build(); var contentTypeDefinition2 = new ContentTypeDefinitionBuilder(contentTypeDefinition1) .WithPart("foo", pb => pb.WithSetting("x", "12").WithSetting("z", "13")) .Build(); Assert.That(contentTypeDefinition1.Name, Is.EqualTo("alpha")); Assert.That(contentTypeDefinition1.Parts.Count(), Is.EqualTo(1)); Assert.That(contentTypeDefinition1.Parts.Single().PartDefinition.Name, Is.EqualTo("foo")); Assert.That(contentTypeDefinition1.Parts.Single().Settings.Count(), Is.EqualTo(2)); Assert.That(contentTypeDefinition1.Parts.Single().Settings["x"], Is.EqualTo("10")); Assert.That(contentTypeDefinition1.Parts.Single().Settings["y"], Is.EqualTo("11")); Assert.That(contentTypeDefinition2.Name, Is.EqualTo("alpha")); Assert.That(contentTypeDefinition2.Parts.Count(), Is.EqualTo(1)); Assert.That(contentTypeDefinition2.Parts.Single().PartDefinition.Name, Is.EqualTo("foo")); Assert.That(contentTypeDefinition2.Parts.Single().Settings.Count(), Is.EqualTo(3)); Assert.That(contentTypeDefinition2.Parts.Single().Settings["x"], Is.EqualTo("12")); Assert.That(contentTypeDefinition2.Parts.Single().Settings["y"], Is.EqualTo("11")); Assert.That(contentTypeDefinition2.Parts.Single().Settings["z"], Is.EqualTo("13")); }
public void ChildElementsAreAddedAsPartsWithSettings() { var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XElement("bar", new XAttribute("y", "2"))), builder); var type = builder.Build(); Assert.That(type.Parts.Single().PartDefinition.Name, Is.EqualTo("bar")); Assert.That(type.Parts.Single().Settings["y"], Is.EqualTo("2")); }
public static IUser Create(string role) { var simulationType = new ContentTypeDefinitionBuilder().Named("User").Build(); var simulation = new ContentItemBuilder(simulationType) .Weld<SimulatedUser>() .Weld<SimulatedUserRoles>() .Build(); simulation.As<SimulatedUserRoles>().Roles = new[] {role}; return simulation.As<IUser>(); }
public void TypeAndTypePartSettingsAreAttributes() { var alpha = new ContentTypeDefinitionBuilder() .Named("alpha") .WithSetting("x", "1") .WithPart("beta", part => part.WithSetting(" y ", "2")) .Build(); var alphaInfoset = _writer.Export(alpha); Assert.That(alphaInfoset.Attributes("x").Single().Value, Is.EqualTo("1")); Assert.That(alphaInfoset.Elements("beta").Attributes(XmlConvert.EncodeLocalName(" y ")).Single().Value, Is.EqualTo("2")); }
public void PartsCanBeRemovedByNameWhenImporting() { const string partToBeRemoved = "alpha"; var builder = new ContentTypeDefinitionBuilder(); _reader.Merge(new XElement("foo", new XElement(partToBeRemoved), new XElement("remove", new XAttribute("name", partToBeRemoved)) ), builder); var type = builder.Build(); Assert.That(type.Parts.FirstOrDefault(part => part.PartDefinition.Name == partToBeRemoved), Is.Null); }
public void AddingPartWithSettings() { var contentTypeDefinition = new ContentTypeDefinitionBuilder() .Named("alpha") .WithSetting("a", "1") .WithSetting("b", "2") .WithPart("foo", pb => pb.WithSetting("x", "10").WithSetting("y", "11")) .Build(); Assert.That(contentTypeDefinition.Name, Is.EqualTo("alpha")); Assert.That(contentTypeDefinition.Parts.Count(), Is.EqualTo(1)); Assert.That(contentTypeDefinition.Parts.Single().PartDefinition.Name, Is.EqualTo("foo")); Assert.That(contentTypeDefinition.Parts.Single().Settings.Count(), Is.EqualTo(2)); Assert.That(contentTypeDefinition.Parts.Single().Settings["x"], Is.EqualTo("10")); Assert.That(contentTypeDefinition.Parts.Single().Settings["y"], Is.EqualTo("11")); }
/// <summary> /// Merges a given content type definition provided in a XML format into a content type definition builder. /// </summary> /// <param name="element">The XML content type definition.</param> /// <param name="contentTypeDefinitionBuilder">The content type definition builder.</param> public void Merge(XElement element, ContentTypeDefinitionBuilder contentTypeDefinitionBuilder) { Argument.ThrowIfNull(element, "element"); Argument.ThrowIfNull(contentTypeDefinitionBuilder, "contentTypeDefinitionBuilder"); // Merge name contentTypeDefinitionBuilder.Named(XmlConvert.DecodeName(element.Name.LocalName)); // Merge display name if (element.Attribute("DisplayName") != null) { contentTypeDefinitionBuilder.DisplayedAs(element.Attribute("DisplayName").Value); } // Merge settings foreach (var setting in _settingsFormatter.Map(element)) { contentTypeDefinitionBuilder.WithSetting(setting.Key, setting.Value); } // Merge parts foreach (var iter in element.Elements()) { var partElement = iter; var partName = XmlConvert.DecodeName(partElement.Name.LocalName); if (partName == "remove") { var nameAttribute = partElement.Attribute("name"); if (nameAttribute != null) { contentTypeDefinitionBuilder.RemovePart(nameAttribute.Value); } } else { contentTypeDefinitionBuilder.WithPart( partName, partBuilder => { foreach (var setting in _settingsFormatter.Map(partElement)) { partBuilder.WithSetting(setting.Key, setting.Value); } }); } } }
public void GetContentTypesShouldReturnAllTypes() { // Register the types and obtain them ContentTypeDefinition alphaType = new ContentTypeDefinitionBuilder() .Named(DefaultAlphaName) .Build(); ContentTypeDefinition betaType = new ContentTypeDefinitionBuilder() .Named(DefaultBetaName) .Build(); ContentTypeDefinition gammaType = new ContentTypeDefinitionBuilder() .Named(DefaultGammaName) .Build(); ContentTypeDefinition deltaType = new ContentTypeDefinitionBuilder() .Named(DefaultDeltaName) .Build(); _contentDefinitionManager.Setup(contentDefinitionManager => contentDefinitionManager.ListTypeDefinitions()) .Returns(new List<ContentTypeDefinition> { alphaType, betaType, gammaType, deltaType }); var types = _manager.GetContentTypeDefinitions(); // Validate that the expected types were obtained Assert.That(types.Count(), Is.EqualTo(4)); Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultAlphaName)); Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultBetaName)); Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultGammaName)); Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultDeltaName)); }
public void ExistingTypeAndPartDefinitionShouldBeUsed() { var alphaType = new ContentTypeDefinitionBuilder() .Named(DefaultAlphaName) .WithSetting("x", "1") .WithPart("foo") .WithPart("FlavoredPart", part => part.WithSetting("spin", "clockwise")) .Build(); _contentDefinitionManager .Setup(x => x.GetTypeDefinition(DefaultAlphaName)) .Returns(alphaType); var contentItem = _manager.New(DefaultAlphaName); Assert.That(contentItem.ContentType, Is.EqualTo(DefaultAlphaName)); Assert.That(contentItem.TypeDefinition, Is.Not.Null); Assert.That(contentItem.TypeDefinition, Is.SameAs(alphaType)); var flavored = contentItem.As<FlavoredPart>(); Assert.That(flavored, Is.Not.Null); Assert.That(flavored.TypePartDefinition, Is.Not.Null); Assert.That(flavored.TypePartDefinition.Settings["spin"], Is.EqualTo("clockwise")); }
public void ContentRebuildWithModification() { var contentTypeDefinition1 = new ContentTypeDefinitionBuilder() .Named("alpha") .WithSetting("a", "1") .WithSetting("b", "2") .Build(); var contentTypeDefinition2 = new ContentTypeDefinitionBuilder(contentTypeDefinition1) .Named("beta") .WithSetting("b", "22") .WithSetting("c", "3") .Build(); Assert.That(contentTypeDefinition1, Is.Not.SameAs(contentTypeDefinition2)); Assert.That(contentTypeDefinition1.Name, Is.EqualTo("alpha")); Assert.That(contentTypeDefinition1.Settings.Count(), Is.EqualTo(2)); Assert.That(contentTypeDefinition1.Settings["a"], Is.EqualTo("1")); Assert.That(contentTypeDefinition1.Settings["b"], Is.EqualTo("2")); Assert.That(contentTypeDefinition2.Name, Is.EqualTo("beta")); Assert.That(contentTypeDefinition2.Settings.Count(), Is.EqualTo(3)); Assert.That(contentTypeDefinition2.Settings["a"], Is.EqualTo("1")); Assert.That(contentTypeDefinition2.Settings["b"], Is.EqualTo("22")); Assert.That(contentTypeDefinition2.Settings["c"], Is.EqualTo("3")); }
public void ContentTypeNameAndSettingsFromScratch() { var contentTypeDefinition = new ContentTypeDefinitionBuilder() .Named("alpha") .WithSetting("a", "1") .WithSetting("b", "2") .Build(); Assert.That(contentTypeDefinition.Name, Is.EqualTo("alpha")); Assert.That(contentTypeDefinition.Settings.Count(), Is.EqualTo(2)); Assert.That(contentTypeDefinition.Settings["a"], Is.EqualTo("1")); Assert.That(contentTypeDefinition.Settings["b"], Is.EqualTo("2")); }
private ContentPart CreateContentItemPart() { var partDefinition = FooPartDefinition(); var typeDefinition = new ContentTypeDefinitionBuilder() .WithPart(partDefinition, part => { }) .Build(); var contentItem = new ContentItem { VersionRecord = new ContentItemVersionRecord { ContentItemRecord = new ContentItemRecord() } }; var contentPart = new ContentPart { TypePartDefinition = typeDefinition.Parts.Single() }; contentItem.Weld(contentPart); contentItem.Weld(new InfosetPart { Infoset = contentItem.Record.Infoset, VersionInfoset = contentItem.VersionRecord.Infoset }); return contentPart; }
public static ContentTypeDefinition Import(this IContentDefinitionReader reader, XElement source) { var target = new ContentTypeDefinitionBuilder(); reader.Merge(source, target); return target.Build(); }