public void GeoDimensionToDimensionTest()
        {
            INEProvider.INEService.Dimension ineDimension = new INEService.Dimension {
                Code = "1",
                Designation = "Dimension 1",
                Abbreviation = "D1",
                LowestClassificationLevel = 6
            };

            ProviderDataContracts.Metadata.Dimension expected = new ProviderDataContracts.Metadata.Dimension
            {
                ID = "2",
                Name = "Dimension 1",
                NameAbbr = "D1",
                DimensionType = DimensionType.Geographic,
                Attributes = new List<DimensionAttribute> {
                    new HierarchyAttribute {
                        ID = "PT",
                        Name = "Portugal",
                        LazyLoad = true
                    }
                },
                AggregationLevels = new List<AggregationLevel>{
                    new AggregationLevel { ID = "NUTS1", Level = 2, Name = "NUTS 1" },
                    new AggregationLevel { ID = "NUTS2", Level = 3, Name = "NUTS 2" },
                    new AggregationLevel { ID = "NUTS3", Level = 4, Name = "NUTS 3" },
                    new AggregationLevel { ID = "Municipality", Level = 5, Name = "Concelhos" },
                    new AggregationLevel { ID = "Parish", Level = 6, Name = "Freguesias" }
                }
            };

            ProviderDataContracts.Metadata.Dimension actual = DimensionExtension.GeoDimensionToDimension(ineDimension);
            Assert.AreEqual(expected, actual);
        }
        public void ToDimensionTest()
        {
            INEProvider.INEService.Dimension ineDimension = new INEService.Dimension
            {
                Code = "1",
                Designation = "Dimension 1",
                Abbreviation = "D1",
                LowestClassificationLevel = 2,
                Categories = new List<Category> {
                    new Category { Code = "1", Designation = "Category 1", Level = 1 },
                    new Category { Code = "1.1", Designation = "Category 1.1", Level = 2, ParentCategoryCode = "1" },
                    new Category { Code = "2", Designation = "Category 2", Level = 1 }
                }
            };
            int order = 3;
            ProviderDataContracts.Metadata.Dimension expected = new ProviderDataContracts.Metadata.Dimension
            {
                ID = order.ToString(),
                Name = "Dimension 1",
                NameAbbr = "D1",
                DimensionType = DimensionType.Other,
                Attributes = new List<DimensionAttribute> {
                    new HierarchyAttribute {
                        ID = "1",
                        Name = "Category 1",
                        ChildAttributes = new List<DimensionAttribute> {
                            new DimensionAttribute { ID= "1.1", Name = "Category 1.1" }
                        }
                    },
                    new DimensionAttribute { ID = "2", Name = "Category 2" }
                }
            };

            ProviderDataContracts.Metadata.Dimension actual = DimensionExtension.ToDimension(ineDimension, order, DimensionType.Other);
            Assert.AreEqual(expected, actual);
        }