Ejemplo n.º 1
0
        public void WhenAllSolutionDataExists_ShouldPublishPackagesForEachNuspec()
        {
            //Arrange
            var mocker = new Mocker<Publisher>();

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultSolutionFile)))
                .Returns(_defaultSolutionDir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultNuspec1Path)))
                .Returns(_defaultProject1Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultNuspec2Path)))
                .Returns(_defaultProject2Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultSolutionDir),
                    It.Is<string>(s => s == _defaultNuspecPattern),
                    It.Is<bool>(b => b == true))
                ).Returns(new string[] { _defaultNuspec1Path, _defaultNuspec2Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject1Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { _defaultProject1Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject2Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { _defaultProject2Path });

            var project1Package = new Mock<IPackage>();
            mocker.GetMock<IPackageFactory>()
                .Setup(f => f.CreateFromProject(
                    It.Is<string>(s => s == _defaultNuspec1Path),
                    It.Is<string>(s => s == _defaultProject1Path),
                    It.IsAny<string>(),
                    It.IsAny<bool>())
                ).Returns(project1Package.Object);

            var project2Package = new Mock<IPackage>();
            mocker.GetMock<IPackageFactory>()
                .Setup(f => f.CreateFromProject(
                    It.Is<string>(s => s == _defaultNuspec2Path),
                    It.Is<string>(s => s == _defaultProject2Path),
                    It.IsAny<string>(),
                    It.IsAny<bool>())
                ).Returns(project2Package.Object);

            mocker.GetMock<INuGetServer>()
                .Setup(s => s.PushPackage(It.Is<IPackage>(p => p == project1Package.Object || p == project2Package.Object)));

            mocker.SetBehavior<ILog>(MockBehavior.Loose);

            var publisher = mocker.Create() as IPublisher;

            //Act
            publisher.PublishPackages(_defaultSolutionFile, _defaultNuspecPattern, "Release", false);

            //Assert
            mocker.VerifyAll();
        }
Ejemplo n.º 2
0
        public void WhenNuspecDoesNotHaveMatchingProject_ShouldThrowInvalidOperation()
        {
            //Arrange
            var mocker = new Mocker<Publisher>();

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultSolutionFile)))
                .Returns(_defaultSolutionDir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.GetDirectory(It.Is<string>(s => s == _defaultProject1Path)))
                .Returns(_defaultProject1Dir);

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultSolutionDir),
                    It.Is<string>(s => s == _defaultNuspecPattern),
                    It.Is<bool>(b => b == true))
                ).Returns(new string[] { _defaultProject1Path });

            mocker.GetMock<Run00.FileSystem.IFileSystem>()
                .Setup(f => f.FindFiles(
                    It.Is<string>(s => s == _defaultProject1Dir),
                    It.Is<string>(s => s == "*.csproj"),
                    It.Is<bool>(b => b == false))
                ).Returns(new string[] { });

            mocker.SetBehavior<ILog>(MockBehavior.Loose);

            var publisher = mocker.Create() as IPublisher;

            //Act
            var exception = ExceptionTest.Catch(() => publisher.PublishPackages(_defaultSolutionFile, _defaultNuspecPattern, "Release", false));

            //Assert
            mocker.VerifyAll();
            Assert.AreEqual(typeof(InvalidOperationException), exception.GetType());
        }