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); } }
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); } }
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)); }
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)); }