Ejemplo n.º 1
0
        public void Should_not_perform_lookup_multiple_times_for_the_same_value()
        {
            var xml = XElement.Parse(
                "<Container>" +
                "<AReference><ALookup><Value>A</Value></ALookup></AReference>" +
                "<BReference><BLookup>" +
                "<AReference><ALookup><Value>A</Value></ALookup></AReference>" +
                "</BLookup></BReference>" +
                "</Container>");

            var xwip           = new XmlToWorkItemsProcessor();
            var items          = xwip.GetLookupWorkItems(new XmlTextReader(new StringReader(xml.ToString()))).ToList();
            var hashIdentities = new Dictionary <string, XElement>();

            foreach (var xmlLookupWorkItem in items)
            {
                foreach (var lookupPipelineStep in Pipeline(hashIdentities))
                {
                    lookupPipelineStep.Process(xmlLookupWorkItem);
                }
            }

            foreach (var wi in items)
            {
                Console.WriteLine(wi.HashString);
                Console.WriteLine(wi.LookupXElement);
                Console.WriteLine(wi.IdentityXElement);
            }

            Assert.AreEqual(3, items.Count);
            Assert.AreEqual(2, hashIdentities.Count);
        }
Ejemplo n.º 2
0
 public XmlLookupApplication(
     IXmlPairsFactory pairsFactory,
     XmlToWorkItemsProcessor xmlToWorkItemsProcessor,
     XmlLookupPipelineProcessor xmlLookupPipelineProcessor,
     XmlLookupToResourceProcessor xmlLookupToResourceProcessor)
 {
     _pairsFactory                 = pairsFactory;
     _xmlToWorkItemsProcessor      = xmlToWorkItemsProcessor;
     _xmlLookupPipelineProcessor   = xmlLookupPipelineProcessor;
     _xmlLookupToResourceProcessor = xmlLookupToResourceProcessor;
 }
Ejemplo n.º 3
0
        private XmlLookupWorkItem[] TestWorkItems(XElement xElement)
        {
            var processor = new XmlToWorkItemsProcessor();
            var stream    = new MemoryStream(Encoding.UTF8.GetBytes(xElement.ToString()));
            var reader    = new XmlTextReader(stream);
            var workItems = processor.GetLookupWorkItems(reader).ToArray();

            foreach (var xmlLookupWorkItem in workItems)
            {
                Console.WriteLine(xmlLookupWorkItem.LookupXElement);
            }

            return(workItems);
        }