/// <summary> /// Test method for <see cref="MaintainableUtil{T}.FilterCollection" /> /// </summary> public void TestFilterCollection() { var dataflows = new List<IDataflowObject>(); for (int i = 0; i < 5; i++) { var moq = new Mock<IDataflowObject>(); moq.Setup(o => o.AgencyId).Returns((i % 2) == 0 ? "ESTAT" : "TEST"); moq.Setup(o => o.Id).Returns("ID" + i.ToString(CultureInfo.InvariantCulture)); moq.Setup(o => o.Version).Returns("1." + i.ToString(CultureInfo.InvariantCulture)); dataflows.Add(moq.Object); } var dataflowUtil = new MaintainableUtil<IDataflowObject>(); CollectionAssert.AreEquivalent(dataflows, dataflowUtil.FilterCollection(dataflows, null)); CollectionAssert.AreEquivalent(dataflows, dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl())); CollectionAssert.IsSubsetOf(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl("ESTAT", null, null)), dataflows); CollectionAssert.AreNotEquivalent(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl("ESTAT", null, null)), dataflows); CollectionAssert.IsSubsetOf(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl("TEST", null, null)), dataflows); CollectionAssert.AreNotEquivalent(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl("TEST", null, null)), dataflows); CollectionAssert.IsSubsetOf(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, "ID1", null)), dataflows); CollectionAssert.AreNotEquivalent(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, "ID1", null)), dataflows); CollectionAssert.IsSubsetOf(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, "ID1", "1.1")), dataflows); CollectionAssert.AreNotEquivalent(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, "ID1", "1.1")), dataflows); CollectionAssert.IsSubsetOf(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, null, "1.1")), dataflows); CollectionAssert.AreNotEquivalent(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, null, "1.1")), dataflows); CollectionAssert.IsEmpty(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl("NOTHING", null, null))); CollectionAssert.IsEmpty(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, "NO", null))); CollectionAssert.IsEmpty(dataflowUtil.FilterCollection(dataflows, new MaintainableRefObjectImpl(null, null, "5.0"))); }
private static ISet <ICategorisationObject> GetCategorisations( IMaintainableObject maintainable, IEnumerable <ICategorisationObject> categorisations) { ISet <ICategorisationObject> returnSet = new HashSet <ICategorisationObject>(); if (maintainable.IsExternalReference.IsTrue) { return(returnSet); } /* foreach */ foreach (ICategorisationObject cat in categorisations) { if (cat.IsExternalReference.IsTrue) { continue; } if (cat.StructureReference.TargetReference.EnumType == maintainable.StructureType.EnumType) { if (MaintainableUtil <IMaintainableObject> .Match(maintainable, cat.StructureReference)) { returnSet.Add(cat); } } } return(returnSet); }
private List <JsTreeNode> BuildJSTree(ISdmxObjects SdmxOBJ, string TwoLetterISO) { var categorisedDataflowIndex = new Dictionary <string, IDataflowObject>(); var uncategorisedDataflow = new List <IDataflowObject>(); var nodeList = new List <JsTreeNode>(); // for each dataflows control if has a categorization // if true put it in dataflow list or in uncategorizate list foreach (IDataflowObject d in SdmxOBJ.Dataflows) { if (!d.IsExternalReference.IsTrue && SdmxOBJ.Categorisations.Count(cat => !cat.IsExternalReference.IsTrue && cat.StructureReference.TargetReference.EnumType == d.StructureType.EnumType && MaintainableUtil <IMaintainableObject> .Match(d, cat.StructureReference)) == 0) { uncategorisedDataflow.Add(d); } else { categorisedDataflowIndex.Add(Utils.MakeKey(d), d); } } nodeList.AddRange(CreateCategorisedNodes(SdmxOBJ, categorisedDataflowIndex, TwoLetterISO)); if (TreeObj.Configuration.UseUncategorysed) { var uncategorisedNode = new JsTreeNode(); uncategorisedNode.SetRel("category-scheme"); uncategorisedNode.type = "category-scheme"; uncategorisedNode.SetId("uncategorised"); uncategorisedNode.text = Messages.text_dataflows_uncategorized; foreach (IDataflowObject dataflow in uncategorisedDataflow) { JsTreeNode node = CreateDataflowNode(dataflow, SdmxOBJ, TwoLetterISO); if (node != null) { uncategorisedNode.children.Add(node); } } if (uncategorisedNode.children.Count > 0) { nodeList.Add(uncategorisedNode); } } return(nodeList); }
public virtual ISet<IRegistrationObject> GetRegistrations(IMaintainableRefObject xref) { MaintainableUtil<IRegistrationObject> filter = new MaintainableUtil<IRegistrationObject>(); return filter.FilterCollection(registrations, xref); }