protected override void ProcessRecord() { if (Yaml == null && Item == null) { throw new InvalidOperationException("Neither YAML strings or IItemDatas were passed in, cannot process."); } var console = new PowershellProgressStatus(Host, "Deserialize Item"); var consoleLogger = new WebConsoleLogger(console, MessageType.Debug); var yaml = CreateFormatter(CreateFieldFilter()); // Ignoring BranchId should probably be controllable from the outside. For now it will just be wired to false. // See issue 283 in Unicorn. https://github.com/SitecoreUnicorn/Unicorn/issues/283 // Unicorn default for this will be to ignore BranchId var deserializer = new DefaultDeserializer(false, new DefaultDeserializerLogger(consoleLogger), CreateFieldFilter()); if (Yaml != null) { using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(Yaml))) { var item = yaml.ReadSerializedItem(stream, "(from PowerShell)"); consoleLogger.Info(item.Path); deserializer.Deserialize(item, null); } } if (Item != null) { consoleLogger.Info(Item.Path); deserializer.Deserialize(Item, null); } }
private static Container InitializeContainer() { Container container = SitecoreSidekick.Bootstrap.Container; // Register components here container.Register <IContentMigrationManagerService, ContentMigrationManagerService>(); container.RegisterFactory <IRemoteContentService>(args => { var registration = container.Resolve <IScsRegistrationService>(); return(new RemoteContentService(registration)); }); container.Register <ISitecoreDataAccessService, SitecoreDataAccessService>(); container.Register <ILoggingService, LoggingService>(); container.RegisterFactory <IDataStore>(args => { IDefaultDeserializerLogger logger = (IDefaultDeserializerLogger)args.FirstOrDefault(a => a is IDefaultDeserializerLogger); var deserializer = new DefaultDeserializer(logger, new DefaultFieldFilter()); return(new SitecoreDataStore(deserializer)); }); container.RegisterFactory <IContentItemPuller>(args => new ContentItemPuller()); container.RegisterFactory <IContentItemInstaller>(args => new ContentItemInstaller()); container.RegisterFactory <IDefaultLogger>(args => new DefaultLogger()); container.RegisterFactory <ISignatureService>(args => new SignatureService((string)args[0])); container.RegisterFactory <IItemComparer>(args => new DefaultItemComparer()); container.RegisterFactory <IYamlSerializationService>(args => new YamlSerializationService()); return(container); }
public void Deserialize_IgnoresField_ExcludedWithFieldFilter() { var ignoredFieldId = ID.NewID; var fieldFilter = Substitute.For <IFieldFilter>(); fieldFilter.Includes(Arg.Any <Guid>()).Returns(true); fieldFilter.Includes(ignoredFieldId.Guid).Returns(false); var deserializer = new DefaultDeserializer(Substitute.For <IDefaultDeserializerLogger>(), fieldFilter); deserializer.ParentDataStore = new SitecoreDataStore(deserializer); using (var db = new Db()) { var itemId = ID.NewID; db.Add(new DbItem("Test Item", itemId) { { ignoredFieldId, "Test Value" } }); var itemData = new ProxyItem(new ItemData(db.GetItem(itemId))); var fields = new List <IItemFieldValue>(); fields.Add(new FakeFieldValue("Changed Ignored Value", fieldId: ignoredFieldId.Guid)); ((ProxyItemVersion)itemData.Versions.First()).Fields = fields; deserializer.Deserialize(itemData); var fromDb = db.GetItem(itemId); Assert.Equal(fromDb[ignoredFieldId], "Test Value"); } }
protected IDeserializer CreateTestDeserializer(Db db) { var fieldFilter = Substitute.For <IFieldFilter>(); fieldFilter.Includes(Arg.Any <Guid>()).Returns(true); var deserializer = new DefaultDeserializer(Substitute.For <IDefaultDeserializerLogger>(), fieldFilter); deserializer.ParentDataStore = new SitecoreDataStore(deserializer); db.Add(new DbTemplate("Test Template", _testTemplateId) { new DbField("Test Field", _testVersionedFieldId), new DbField("Test Shared", _testSharedFieldId) { Shared = true } }); db.Add(new DbTemplate("Test Template2", _testTemplate2Id) { new DbField("Test Field"), new DbField("Test Shared") { Shared = true } }); return(deserializer); }
private void TestDeserialize <T>(byte[] input, T objectIn, DataType type) { DefaultDeserializer deserializer = new DefaultDeserializer(input); var objectOut = deserializer.ReadZigBeeType <T>(type); Assert.Equal(objectIn, objectOut); }
public ContentItemInstaller() { var deserializer = new DefaultDeserializer(_logger, new DefaultFieldFilter()); _scDatastore = new SitecoreDataStore(deserializer); _sitecore = Bootstrap.Container.Resolve <ISitecoreAccessService>(); }
protected override void ProcessRecord() { if (Yaml == null && Item == null) { throw new InvalidOperationException("Neither YAML strings or IItemDatas were passed in, cannot process."); } var console = new PowershellProgressStatus(Host, "Deserialize Item"); var consoleLogger = new WebConsoleLogger(console, MessageType.Debug); var yaml = CreateFormatter(CreateFieldFilter()); var deserializer = new DefaultDeserializer(new DefaultDeserializerLogger(consoleLogger), CreateFieldFilter()); if (Yaml != null) { using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(Yaml))) { var item = yaml.ReadSerializedItem(stream, "(from PowerShell)"); consoleLogger.Info(item.Path); deserializer.Deserialize(item); } } if (Item != null) { consoleLogger.Info(Item.Path); deserializer.Deserialize(Item); } }
public void Deserializer_SetAttributes() { XDocument document = XDocument.Load(testXMLPath); DefaultDeserializer testDeserializer = new DefaultDeserializer(document); testDeserializer.Deserialize(); DeserializedElement root = testDeserializer.Root; Assert.AreEqual(root.Value, "RootTextValue"); }
public void Find_Test() { XDocument document = XDocument.Load(testXMLPath); DefaultDeserializer testDeserializer = new DefaultDeserializer(document); testDeserializer.Deserialize(); DefaultSerializer serializer = new DefaultSerializer(testDeserializer.Root); Assert.AreEqual("VVVVVV", serializer.Find("ElementAsValue").First().Value); }
public void FindChildren_Test() { XDocument document = XDocument.Load(testXMLPath); DefaultDeserializer testDeserializer = new DefaultDeserializer(document); testDeserializer.Deserialize(); DeserializedElement testElement = testDeserializer.Root.FindChildren("Child1").First(); Assert.AreEqual("bar", testElement.Attributes["foo"]); }
public void Deserializer_SetValue() { XDocument document = XDocument.Load(testXMLPath); DefaultDeserializer testDeserializer = new DefaultDeserializer(document); testDeserializer.Deserialize(); DeserializedElement root = testDeserializer.Root; Assert.AreEqual(root.Attributes["att1"], "val1"); Assert.AreEqual(root.Attributes["att2"], "val2"); Assert.AreEqual(root.Attributes["att3"], "val3"); }
public void Deserializer_SetName() { XDocument document = XDocument.Load(testXMLPath); DefaultDeserializer testDeserializer = new DefaultDeserializer(document); testDeserializer.Deserialize(); DeserializedElement root = testDeserializer.Root; Assert.AreEqual(root.Name, "Root"); Assert.AreEqual(root.Children[0].Name, "Child1"); Assert.AreEqual(root.Children[0].Children[0].Name, "ElementAsValue"); }
public void AddTwoDefaultDeserializers_Throws() { var myDefaultDeserializer1 = new DefaultDeserializer(new SerializableTypeInfo(null, "MyPackformatName", 1, new List <FieldOrPropertyMemberInfo>())); var myDefaultDeserializer2 = new DefaultDeserializer(new SerializableTypeInfo(null, "MyPackformatName", 1, new List <FieldOrPropertyMemberInfo>())); Action action = () => { var deserializerCollection = (DeserializerCollection)DeserializerCollection.New .Add(myDefaultDeserializer1) .Add(myDefaultDeserializer2); }; action.ShouldThrow <ShapeshifterException>().Where(i => i.Id == Exceptions.DeserializerAlreadyExistsId); }
private static bool ProcessItem(IItemData item) { if (item == null) { return(false); } var consoleLogger = new SitecoreLogger(); var deserializer = new DefaultDeserializer(false, new DefaultDeserializerLogger(consoleLogger), CreateFieldFilter()); consoleLogger.Info(item.Path); deserializer.Deserialize(item, null); return(true); }
public void AddCustomAndDefaultDeserializerForConcreteVersion_InAnyOrder_Resolve_CustomDeserializerIsReturned() { var myDefaultDeserializer = new DefaultDeserializer(new SerializableTypeInfo(null, "MyPackformatName", 1, new List <FieldOrPropertyMemberInfo>())); var myCustomDeserializer = new CustomDeserializer("MyPackformatName", 1, null); { var deserializerCollection = (DeserializerCollection)DeserializerCollection.New .Add(myCustomDeserializer) .Add(myDefaultDeserializer); deserializerCollection.ResolveDeserializer(new DeserializerKey("MyPackformatName", 1)).Should().Be(myCustomDeserializer); } { var deserializerCollection = (DeserializerCollection)DeserializerCollection.New .Add(myDefaultDeserializer) .Add(myCustomDeserializer); deserializerCollection.ResolveDeserializer(new DeserializerKey("MyPackformatName", 1)).Should().Be(myCustomDeserializer); } }