public void ReasonFor_WithTreeOfMods_GivesCorrectParents() { var list = new List <string>(); var suggested = generator.GeneratorRandomModule(); var recommendedA = generator.GeneratorRandomModule(); var recommendedB = generator.GeneratorRandomModule(); var mod = generator.GeneratorRandomModule( suggests: new List <RelationshipDescriptor> { new ModuleRelationshipDescriptor { name = suggested.identifier } } ); list.Add(mod.identifier); suggested.recommends = new List <RelationshipDescriptor> { new ModuleRelationshipDescriptor { name = recommendedA.identifier }, new ModuleRelationshipDescriptor { name = recommendedB.identifier } }; AddToRegistry(mod, suggested, recommendedA, recommendedB); options.with_all_suggests = true; options.with_recommends = true; var relationship_resolver = new RelationshipResolver(list, null, options, registry, null); var reason = relationship_resolver.ReasonFor(recommendedA); Assert.That(reason, Is.AssignableTo <SelectionReason.Recommended>()); Assert.That(reason.Parent, Is.EqualTo(suggested)); reason = relationship_resolver.ReasonFor(recommendedB); Assert.That(reason, Is.AssignableTo <SelectionReason.Recommended>()); Assert.That(reason.Parent, Is.EqualTo(suggested)); }
public void ReasonFor_WithUserAddedMods_GivesReasonUserAdded() { var list = new List <string>(); var mod = generator.GeneratorRandomModule(); list.Add(mod.identifier); registry.AddAvailable(mod); AddToRegistry(mod); var relationship_resolver = new RelationshipResolver(list, null, options, registry, null); var reason = relationship_resolver.ReasonFor(mod); Assert.That(reason, Is.AssignableTo <SelectionReason.UserRequested>()); }
public void ReasonFor_WithModsNotInList_ThrowsArgumentException() { var list = new List <string>(); var mod = generator.GeneratorRandomModule(); list.Add(mod.identifier); registry.AddAvailable(mod); AddToRegistry(mod); var relationship_resolver = new RelationshipResolver(list, null, options, registry, null); var mod_not_in_resolver_list = generator.GeneratorRandomModule(); CollectionAssert.DoesNotContain(relationship_resolver.ModList(), mod_not_in_resolver_list); Assert.Throws <ArgumentException>(() => relationship_resolver.ReasonFor(mod_not_in_resolver_list)); }
public void ReasonFor_WithSugestedMods_GivesCorrectParent() { var list = new List <string>(); var sugested = generator.GeneratorRandomModule(); var mod = generator.GeneratorRandomModule(sugests: new List <RelationshipDescriptor> { new RelationshipDescriptor { name = sugested.identifier } }); list.Add(mod.identifier); AddToRegistry(mod, sugested); options.with_all_suggests = true; var relationship_resolver = new RelationshipResolver(list, options, registry, null); var reason = relationship_resolver.ReasonFor(sugested); Assert.That(reason, Is.AssignableTo <Relationship.Suggested>()); Assert.That(reason.Parent, Is.EqualTo(mod)); }
public void ReasonFor_WithSugestedMods_GivesCorrectParent() { var list = new List <string>(); var sugested = generator.GeneratorRandomModule(); var mod = generator.GeneratorRandomModule( depends: new List <ModDependency> { new ModDependency($"? {sugested.identifier}") } ); list.Add(mod.identifier); AddToRegistry(mod, sugested); options.with_all_suggests = true; var modList = list.Select(p => new CfanModuleIdAndVersion(p)); var relationship_resolver = new RelationshipResolver(modList, options, registry, null); var reason = relationship_resolver.ReasonFor(sugested); Assert.That(reason, Is.AssignableTo <SelectionReason.Suggested>()); Assert.That(reason.Parent, Is.EqualTo(mod)); }