Ejemplo n.º 1
0
        public void CacheRecordNodeConstructFromRowData()
        {
            var file = new FileInfo("PivotTableDataSourceTypeWorksheet.xlsx");

            Assert.IsTrue(file.Exists);
            using (var package = new ExcelPackage(file))
            {
                var         cacheDefinition = package.Workbook.PivotCacheDefinitions.First();
                XmlDocument document        = new XmlDocument();
                document.LoadXml(@"<pivotCacheRecords xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main"" count=""0""><r></r></pivotCacheRecords>");
                var ns   = TestUtility.CreateDefaultNSM();
                var node = document.SelectSingleNode("//d:r", ns);
                var row  = new List <object> {
                    5, "e", false, 100
                };
                var cacheRecordNode = new CacheRecordNode(ns, node, row, cacheDefinition);
                Assert.AreEqual(4, cacheRecordNode.Items.Count);
                Assert.AreEqual("5", cacheRecordNode.Items[0].Value);
                Assert.AreEqual("3", cacheRecordNode.Items[1].Value);
                Assert.AreEqual("2", cacheRecordNode.Items[2].Value);
                Assert.AreEqual("100", cacheRecordNode.Items[3].Value);
                var cacheField1 = cacheDefinition.CacheFields[0];
                var cacheField2 = cacheDefinition.CacheFields[1];
                var cacheField3 = cacheDefinition.CacheFields[2];
                var cacheField4 = cacheDefinition.CacheFields[3];
                Assert.AreEqual(0, cacheField1.SharedItems.Count);
                Assert.IsNotNull(cacheField2.SharedItems.SingleOrDefault(i => i.Value == "e" && i.Type == PivotCacheRecordType.s));
                Assert.IsNotNull(cacheField3.SharedItems.SingleOrDefault(i => i.Value == "0" && i.Type == PivotCacheRecordType.b));
                Assert.AreEqual(0, cacheField4.SharedItems.Count);
            }
        }
Ejemplo n.º 2
0
        public void CacheRecordNodeConstructFromRowDataWithCalculatedField()
        {
            var file = new FileInfo("PivotTableWithCalculatedFields.xlsx");

            Assert.IsTrue(file.Exists);
            using (var package = new ExcelPackage(file))
            {
                var         cacheDefinition = package.Workbook.PivotCacheDefinitions.First();
                XmlDocument document        = new XmlDocument();
                document.LoadXml(@"<pivotCacheRecords xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main"" count=""0""><r></r></pivotCacheRecords>");
                var ns   = TestUtility.CreateDefaultNSM();
                var node = document.SelectSingleNode("//d:r", ns);
                var row  = new List <object> {
                    20100076, "Chicago", "March", "Tent", 3.5, 2, 7, 10
                };
                var cacheRecordNode = new CacheRecordNode(ns, node, row, cacheDefinition);
                Assert.AreEqual(8, cacheRecordNode.Items.Count);
                Assert.AreEqual("20100076", cacheRecordNode.Items[0].Value);
                Assert.AreEqual("1", cacheRecordNode.Items[1].Value);
                Assert.AreEqual("2", cacheRecordNode.Items[2].Value);
                Assert.AreEqual("3", cacheRecordNode.Items[3].Value);
                Assert.AreEqual("3.5", cacheRecordNode.Items[4].Value);
                Assert.AreEqual("1", cacheRecordNode.Items[5].Value);
                Assert.AreEqual("7", cacheRecordNode.Items[6].Value);
                Assert.AreEqual("10", cacheRecordNode.Items[7].Value);
            }
        }
Ejemplo n.º 3
0
        public void CacheRecordContainsPageFieldIndices()
        {
            XmlDocument document = new XmlDocument();

            document.LoadXml(@"<pivotCacheRecords xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main"" count=""1""><r><x v=""1""/><x v=""2""/> <x v=""3""/> <x v=""4""/> <x v=""5""/><x v=""6""/></r></pivotCacheRecords>");
            var ns   = TestUtility.CreateDefaultNSM();
            var node = new CacheRecordNode(ns, document.SelectSingleNode("//d:r", ns));

            Assert.AreEqual(6, node.Items.Count);

            var cacheRecordPageFieldIndices = new Dictionary <int, List <int> >
            {
                { 0, new List <int> {
                      2, 3, 1, 7
                  } },
                { 1, new List <int> {
                      0, 2, 9, 4
                  } },
                { 3, new List <int> {
                      5, 6, 4
                  } }
            };

            Assert.IsTrue(node.ContainsPageFieldIndices(cacheRecordPageFieldIndices));
            cacheRecordPageFieldIndices[0].Remove(1);
            Assert.IsFalse(node.ContainsPageFieldIndices(cacheRecordPageFieldIndices));
        }
Ejemplo n.º 4
0
        public void CacheRecordNodeConstructorTest()
        {
            XmlDocument document = new XmlDocument();

            document.LoadXml(@"<pivotCacheRecords xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main"" count=""1""><r><n v=""20100076""/><x v=""0""/> <b v=""0""/> <m v=""0""/> <e v=""415.75""/><d v=""1""/></r></pivotCacheRecords>");
            var ns   = TestUtility.CreateDefaultNSM();
            var node = new CacheRecordNode(ns, document.SelectSingleNode("//d:r", ns));

            Assert.AreEqual(6, node.Items.Count);
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.b));
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.x));
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.d));
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.e));
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.m));
            Assert.AreEqual(1, node.Items.Count(i => i.Type == PivotCacheRecordType.n));
            Assert.AreEqual(0, node.Items.Count(i => i.Type == PivotCacheRecordType.s));
        }