public ProjectShadowingException(IDependencyPathBasedRuleTarget previousProject, IDependencyPathBasedRuleTarget newProject)
     : base(
         "Two distinct projects are being added with the same path. " +
         $"{previousProject} would be shadowed by {newProject}. " +
         "This typically indicates a programmer error.")
 {
 }
Example #2
0
 public IDependencyPathInProgress CloneWith(IDependencyPathBasedRuleTarget project)
 {
     return(new DependencyPathInProgress(
                _destination,
                _pathFactory,
                _referencedProjects.Concat(new [] { project }).ToList()
                ));
 }
Example #3
0
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     if (_condition1.Matches(depending, dependency))
     {
         return(_condition2.Matches(depending, dependency));
     }
     return(false);
 }
 private void AssertThisIsAddingTheSameReferenceNotShadowing(
     ProjectId referencingProjectId,
     IDependencyPathBasedRuleTarget referencingProject)
 {
     if (_referencingProjects.ContainsKey(referencingProjectId) &&
         !_referencingProjects[referencingProjectId].Equals(referencingProject))
     {
         throw new ProjectShadowingException(_referencingProjects[referencingProjectId], referencingProject);
     }
 }
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     return(dependency.HasPackageReferenceMatching(_packagePattern));
 }
Example #6
0
        public void FinalizeWith(IDependencyPathBasedRuleTarget finalProject)
        {
            IReadOnlyList <IDependencyPathBasedRuleTarget> finalPath = _referencedProjects.Concat(new [] { finalProject }).ToList();

            _destination.Add(_pathFactory(finalPath));
        }
 public void AddReferencingProject(ProjectId projectId, IDependencyPathBasedRuleTarget referencingProject)
 {
     _referencingProjects.Put(projectId, referencingProject);
 }
 public bool  IsNot(IDependencyPathBasedRuleTarget e)
 {
     return(!_foundProject.Equals(e));
 }
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     return(_dependencyCondition.Matches(depending, dependency));
 }
 public bool IsNot(IDependencyPathBasedRuleTarget e)
 {
     return(true);
 }
Example #11
0
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     return(depending.IsNot(dependency));
 }
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     return(dependency.HasProjectAssemblyNameMatching(_dependencyAssemblyNamePattern));
 }
Example #13
0
 public IProjectSearchResult ItemFound(IDependencyPathBasedRuleTarget foundProject, int position)
 {
     return(new ProjectFoundSearchResult(foundProject, position));
 }
Example #14
0
 public bool Matches(IProjectSearchResult depending, IDependencyPathBasedRuleTarget dependency)
 {
     return(dependency.HasAssemblyReferenceWithNameMatching(_pattern));
 }
Example #15
0
 private static IDependencyPathBasedRuleTarget[] ArrayConsistingOf(IDependencyPathBasedRuleTarget root1, IDotNetProject root2)
 {
     return(Arg <IDependencyPathBasedRuleTarget[]> .That(a => a.Should().Equal(root1, root2)));
 }
 public void Put(ProjectId projectId, IDependencyPathBasedRuleTarget referencingProject)
 {
     AssertThisIsAddingTheSameReferenceNotShadowing(projectId, referencingProject);
     _referencingProjects[projectId] = referencingProject;
 }
 public ProjectFoundSearchResult(IDependencyPathBasedRuleTarget foundProject, int occurenceIndex)
 {
     _foundProject   = foundProject;
     _occurenceIndex = occurenceIndex;
 }
 public void FillAllBranchesOf(IDependencyPathInProgress dependencyPathInProgress, IDependencyPathBasedRuleTarget owner)
 {
     if (_referencedProjects.Any())
     {
         foreach (var reference in _referencedProjects.Values)
         {
             reference.FillAllBranchesOf(dependencyPathInProgress.CloneWith(owner));
         }
     }
     else
     {
         dependencyPathInProgress.FinalizeWith(owner);
     }
 }