public void GivenMultipleElementAreInTheModelWhenAnElementIsRemovedThenAllRelationUsingThisElementAreRemoved() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.AddRelation("a", "b", "type1", 1, ""); Assert.IsNotNull(relation1); IDsiRelation relation2 = model.AddRelation("b", "c", "type2", 2, ""); Assert.IsNotNull(relation2); IDsiRelation relation3 = model.AddRelation("a", "c", "type3", 3, ""); Assert.IsNotNull(relation3); Assert.AreEqual(3, model.TotalRelationCount); _elementsDataModel.RemoveElement(_b); Assert.AreEqual(1, model.TotalRelationCount); List <IDsiRelation> relations = model.GetRelations().OrderBy(x => x.Weight).ToList(); Assert.AreEqual(1, relations.Count); Assert.AreEqual(_a.Id, relations[0].ConsumerId); Assert.AreEqual(_c.Id, relations[0].ProviderId); Assert.AreEqual("type3", relations[0].Type); Assert.AreEqual(3, relations[0].Weight); }
public void GivenAnRelationIsInTheModelWhenAddRelationIsCalledAgainForThatRelationThenItsHasOneRelationButWeightHasIncreased() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.AddRelation(_a.Name, _b.Name, "type", 2, "context"); Assert.IsNotNull(relation1); Assert.AreEqual(1, model.TotalRelationCount); List <IDsiRelation> relationsBefore = model.GetRelationsOfConsumer(_a.Id).ToList(); Assert.AreEqual(1, relationsBefore.Count); Assert.AreEqual(_a.Id, relationsBefore[0].ConsumerId); Assert.AreEqual(_b.Id, relationsBefore[0].ProviderId); Assert.AreEqual("type", relationsBefore[0].Type); Assert.AreEqual(2, relationsBefore[0].Weight); IDsiRelation relation2 = model.AddRelation(_a.Name, _b.Name, "type", 3, "context"); Assert.IsNotNull(relation2); Assert.AreEqual(1, model.TotalRelationCount); List <IDsiRelation> relationsAfter = model.GetRelationsOfConsumer(_a.Id).ToList(); Assert.AreEqual(1, relationsAfter.Count); Assert.AreEqual(_a.Id, relationsAfter[0].ConsumerId); Assert.AreEqual(_b.Id, relationsAfter[0].ProviderId); Assert.AreEqual("type", relationsAfter[0].Type); Assert.AreEqual(5, relationsAfter[0].Weight); }
public void GivenMultipleElementAreInTheModelWhenGetElementsIsCalledTheyAreAllReturned() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.ImportRelation(_a.Id, _b.Id, "type1", 1); Assert.IsNotNull(relation1); IDsiRelation relation2 = model.ImportRelation(_b.Id, _c.Id, "type2", 2); Assert.IsNotNull(relation2); IDsiRelation relation3 = model.ImportRelation(_a.Id, _c.Id, "type3", 3); Assert.IsNotNull(relation3); List <IDsiRelation> relations = model.GetRelations().OrderBy(x => x.Weight).ToList(); Assert.AreEqual(3, relations.Count); Assert.AreEqual(_a.Id, relations[0].ConsumerId); Assert.AreEqual(_b.Id, relations[0].ProviderId); Assert.AreEqual("type1", relations[0].Type); Assert.AreEqual(1, relations[0].Weight); Assert.AreEqual(_b.Id, relations[1].ConsumerId); Assert.AreEqual(_c.Id, relations[1].ProviderId); Assert.AreEqual("type2", relations[1].Type); Assert.AreEqual(2, relations[1].Weight); Assert.AreEqual(_a.Id, relations[2].ConsumerId); Assert.AreEqual(_c.Id, relations[2].ProviderId); Assert.AreEqual("type3", relations[2].Type); Assert.AreEqual(3, relations[2].Weight); }
public void WhenAddRelationIsCalledUsingTwoDifferentTypesThenTwoRelationTypesAreFound() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.ImportRelation(_a.Id, _b.Id, "type1", 2); Assert.IsNotNull(relation1); Assert.AreEqual(1, model.TotalRelationCount); IDsiRelation relation2 = model.ImportRelation(_a.Id, _b.Id, "type2", 2); Assert.IsNotNull(relation2); Assert.AreEqual(2, model.TotalRelationCount); List <string> relationTypes = model.GetRelationTypes().ToList(); Assert.AreEqual(2, relationTypes.Count); Assert.AreEqual("type1", relationTypes[0]); Assert.AreEqual("type2", relationTypes[1]); Assert.AreEqual(1, model.GetRelationTypeCount("type1")); Assert.AreEqual(1, model.GetRelationTypeCount("type2")); }
public void GivenModelIsEmptyWhenAddRelationIsCalledThenItsHasOneRelation() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation = model.AddRelation(_a.Name, _b.Name, "type", 2, "context"); Assert.IsNotNull(relation); Assert.AreEqual(1, model.TotalRelationCount); }
private void WriteRelation(XmlWriter writer, IDsiRelation relation, IProgress <ProgressInfo> progress) { writer.WriteStartElement(RelationXmlNode); writer.WriteAttributeString(RelationFromXmlAttribute, relation.ConsumerId.ToString()); writer.WriteAttributeString(RelationToXmlAttribute, relation.ProviderId.ToString()); writer.WriteAttributeString(RelationTypeXmlAttribute, relation.Type); writer.WriteAttributeString(RelationWeightXmlAttribute, relation.Weight.ToString()); writer.WriteEndElement(); _progressedRelationCount++; UpdateProgress(progress); }
public void GivenModelIsEmptyWhenAddRelationIsCalledThenTheRelationExists() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation = model.AddRelation(_a.Name, _b.Name, "type", 2, "context"); Assert.IsNotNull(relation); Assert.IsTrue(model.DoesRelationExist(relation.ConsumerId, relation.ProviderId)); }
public void GivenModelIsEmptyWhenImportRelationIsCalledThenItsHasOneRelation() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation = model.ImportRelation(_a.Id, _b.Id, "type", 2); Assert.IsNotNull(relation); Assert.AreEqual(1, model.TotalRelationCount); }
public void GivenAnRelationIsNotInTheModelWhenDoesRelationExistIsCalledThenFalseIsReturned() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation = model.ImportRelation(_a.Id, _b.Id, "type", 2); Assert.IsNotNull(relation); Assert.AreEqual(1, model.TotalRelationCount); Assert.IsFalse(model.DoesRelationExist(_a.Id, _c.Id)); }
public void GivenAnRelationIsInTheModelWhenAddRelationtIsCalledWithAnotherTypeThenItHasTwoRelations() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.AddRelation(_a.Name, _b.Name, "type1", 2, "context"); Assert.IsNotNull(relation1); Assert.AreEqual(1, model.TotalRelationCount); IDsiRelation relation2 = model.AddRelation(_a.Name, _b.Name, "type2", 3, "context"); Assert.IsNotNull(relation2); Assert.AreEqual(2, model.TotalRelationCount); }
private void ImportDsiRelation(IDsiRelation dsiRelation) { if (_dsiToDsmMapping.ContainsKey(dsiRelation.ConsumerId) && _dsiToDsmMapping.ContainsKey(dsiRelation.ProviderId)) { int consumerId = _dsiToDsmMapping[dsiRelation.ConsumerId]; int providerId = _dsiToDsmMapping[dsiRelation.ProviderId]; string type = dsiRelation.Type; int weight = dsiRelation.Weight; if (consumerId != providerId) { _importPolicy.ImportRelation(consumerId, providerId, type, weight); } } else { Logger.LogError($"Could not find consumer or provider of relation consumer={dsiRelation.ConsumerId} provider={dsiRelation.ProviderId}"); } }
public void GivenModelIsEmptyWhenGetRelationsOfConsumerIsCalledThenItsHasReturnsOneRelation() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation = model.AddRelation(_a.Name, _b.Name, "type", 2, "context"); Assert.IsNotNull(relation); Assert.AreEqual(1, model.TotalRelationCount); List <IDsiRelation> relations = model.GetRelationsOfConsumer(_a.Id).ToList(); Assert.AreEqual(1, relations.Count); Assert.AreEqual(_a.Id, relations[0].ConsumerId); Assert.AreEqual(_b.Id, relations[0].ProviderId); Assert.AreEqual("type", relations[0].Type); Assert.AreEqual(2, relations[0].Weight); }
public void GivenMultipleElementAreInTheModelWhenAddRelationIsCalled3TimesAndSkipRelation1TimeThenResolvedPercentageis75Percent() { DsiRelationModel model = new DsiRelationModel(_elementsDataModel); Assert.AreEqual(0, model.TotalRelationCount); IDsiRelation relation1 = model.AddRelation("a", "b", "type1", 1, ""); Assert.IsNotNull(relation1); IDsiRelation relation2 = model.AddRelation("b", "c", "type2", 2, ""); Assert.IsNotNull(relation2); IDsiRelation relation3 = model.AddRelation("a", "c", "type3", 3, ""); Assert.IsNotNull(relation3); model.SkipRelation("d", "c", "type4", ""); Assert.AreEqual(4, model.TotalRelationCount); Assert.AreEqual(3, model.ResolvedRelationCount); Assert.AreEqual(75.0, model.ResolvedRelationPercentage); }