예제 #1
0
        public void ShouldReturnAssemblyNameWhenAskedForStringRepresentation()
        {
            //GIVEN
            var assemblyName = Any.String();
            var project      = new DotNetStandardProjectBuilder
            {
                AssemblyName = assemblyName
            }.Build();

            //WHEN
            var stringRepresentation = project.ToString();

            //THEN
            stringRepresentation.Should().Be(assemblyName);
        }
예제 #2
0
        public void ShouldSayItDoesNotHaveMatchingProjectAssemblyNameWhenItWasNotCreatedWithMatchingOne()
        {
            //GIVEN
            var searchedAssemblyName = Any.String();
            var project = new DotNetStandardProjectBuilder
            {
                AssemblyName = Any.OtherThan(searchedAssemblyName)
            }.Build();

            //WHEN
            var hasProject = project.HasProjectAssemblyNameMatching(Pattern.WithoutExclusion(searchedAssemblyName));

            //THEN
            hasProject.Should().BeFalse();
        }
예제 #3
0
        public void ShouldSayItHasProjectIdMatchingTheOneItWasCreatedWith()
        {
            //GIVEN
            var assemblyName = Any.String();
            var project      = new DotNetStandardProjectBuilder
            {
                AssemblyName = assemblyName
            }.Build();

            //WHEN
            var hasProject = project.HasProjectAssemblyNameMatching(Pattern.WithoutExclusion(assemblyName));

            //THEN
            hasProject.Should().BeTrue();
        }
예제 #4
0
        ShouldAddItselfWithItsIdAsAReferencingProjectToAnotherProjectWhenAskedToResolveAsReferencingThisProject()
        {
            //GIVEN
            var referencedProject = Substitute.For <IReferencedProject>();
            var projectId         = Any.ProjectId();
            var project           = new DotNetStandardProjectBuilder
            {
                ProjectId = projectId
            }.Build();

            //WHEN
            project.ResolveAsReferencing(referencedProject);

            //THEN
            referencedProject.Received(1).AddReferencingProject(projectId, project);
        }
예제 #5
0
        public void ShouldTellSolutionToResolveAllItsReferencesByIds()
        {
            //GIVEN
            var referencedProjects = Substitute.For <IReferencedProjects>();
            var project            = new DotNetStandardProjectBuilder
            {
                ReferencedProjects = referencedProjects
            }.Build();
            var solution = Substitute.For <ISolutionContext>();

            //WHEN
            project.ResolveReferencesFrom(solution);

            //THEN
            referencedProjects.Received(1).ResolveFrom(project, solution);
        }
예제 #6
0
        public void ShouldDelegateFillingAllBranchesOfDependencyPathsToReferencedProjects()
        {
            //GIVEN
            var referencedProjects = Substitute.For <IReferencedProjects>();
            var project            = new DotNetStandardProjectBuilder
            {
                ReferencedProjects = referencedProjects
            }.Build();
            var dependencyPathInProgress = Substitute.For <IDependencyPathInProgress>();

            //WHEN
            project.FillAllBranchesOf(dependencyPathInProgress);

            //THEN
            referencedProjects.Received(1).FillAllBranchesOf(dependencyPathInProgress, project);
        }
예제 #7
0
        public void ShouldAddReferencingProjectToReferencingProjects()
        {
            //GIVEN
            var referencingProjects = Substitute.For <IReferencingProjects>();
            var projectId           = Any.ProjectId();
            var referencingProject  = Any.Instance <IDependencyPathBasedRuleTarget>();
            var project             = new DotNetStandardProjectBuilder
            {
                ReferencingProjects = referencingProjects
            }.Build();

            //WHEN
            project.AddReferencingProject(projectId, referencingProject);

            //THEN
            referencingProjects.Received(1).Put(projectId, referencingProject);
        }
예제 #8
0
        public void ShouldSayItHasProjectAssemblyNameMatchingBlobPattern()
        {
            //GIVEN
            var assemblySuffix = Any.String();
            var assemblyName   = Any.String() + "." + assemblySuffix;
            var project        = new DotNetStandardProjectBuilder
            {
                AssemblyName = assemblyName
            }.Build();
            string assemblyNamePattern = "*." + assemblySuffix;

            //WHEN
            var hasProject = project.HasProjectAssemblyNameMatching(Pattern.WithoutExclusion(assemblyNamePattern));

            //THEN
            hasProject.Should().BeTrue();
        }
예제 #9
0
        public void ShouldSayItIsARootWhenItHasNoReferencingProjectsOtherwiseNo()
        {
            //GIVEN
            var referencingProjects            = Substitute.For <IReferencingProjects>();
            var areThereAnyReferencingProjects = Any.Boolean();
            var project = new DotNetStandardProjectBuilder
            {
                ReferencingProjects = referencingProjects
            }.Build();

            referencingProjects.AreEmpty().Returns(areThereAnyReferencingProjects);

            //WHEN
            var isRoot = project.IsRoot();

            //THEN
            isRoot.Should().Be(areThereAnyReferencingProjects);
        }