示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BuildService" /> class.
 /// </summary>
 /// <param name="buildAdapter">The build service.</param>
 /// <exception cref="System.ArgumentNullException">The Jenkins Server URL cannot be null or empty.
 /// or
 /// The Project Name cannot be null or empty.
 /// or
 /// The Build Name cannot be null or empty.</exception>
 public BuildService(IBuildAdapter buildAdapter)
 {
     if (buildAdapter == null)
     {
         throw new ArgumentNullException("The ArgumentNullException was not throwed in case of BuildService is equal to null.");
     }
     this.buildAdapter = buildAdapter;
 }
        public void ThrowAlreadyTriggeredBuildException_WhenBuildIsAlreadyTriggered()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetSpecificBuildStatusXml(Arg.IsAny <string>())).Throws <WebException>();

            var jenkinsBuild = new BuildService(buildAdapter);

            jenkinsBuild.TriggerBuild(string.Empty, "35");
        }
        public void WaitUntilBuildStarts()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetSpecificBuildStatusXml(Arg.IsAny <string>())).Returns(string.Empty);

            var jenkinsBuild = new BuildService(buildAdapter);

            jenkinsBuild.WaitUntilBuildStarts("32");
        }
        public void ThrowException_When30SecondsWebExceptionsAreThrown()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetSpecificBuildStatusXml(Arg.IsAny <string>())).Throws <WebException>("The remote server returned an error: (404) Not Found.");
            DateTime startTime    = DateTime.Now;
            var      jenkinsBuild = new BuildService(buildAdapter);

            jenkinsBuild.WaitUntilBuildStarts("32");
            DateTime endTime = DateTime.Now;
            double   seconds = (endTime - startTime).TotalSeconds;

            Assert.IsTrue(seconds > 30 && seconds < 31, "The wait time in case of web exceptions was incorrect.");
        }
        public void GetRealBuildNumber()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetBuildStatusXml()).Returns(string.Empty);
            Mock.Arrange(() => buildAdapter.GetQueuedBuildNumber(Arg.IsAny <string>(), Arg.IsAny <string>())).Returns(32);

            var    jenkinsBuild    = new BuildService(buildAdapter);
            string nextBuildNumber = jenkinsBuild.GetRealBuildNumber("32");

            Assert.AreEqual <string>(
                "32",
                nextBuildNumber,
                "The next build number was incorrect.");
        }
        public void GetBuildStatus()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetSpecificBuildStatusXml(Arg.IsAny <string>())).Returns(string.Empty);
            Mock.Arrange(() => buildAdapter.GetBuildResult(Arg.IsAny <string>())).Returns("SUCCESS");

            var    jenkinsBuild = new BuildService(buildAdapter);
            string response     = jenkinsBuild.GetBuildStatus("35");

            Assert.AreEqual <string>(
                "SUCCESS",
                response,
                "The build was not triggered successfully.");
        }
        public void TriggerBuild()
        {
            IBuildAdapter buildAdapter = Mock.Create <IBuildAdapter>();

            Mock.Arrange(() => buildAdapter.GetSpecificBuildStatusXml(Arg.IsAny <string>())).Throws <WebException>("The remote server returned an error: (404) Not Found.");
            Mock.Arrange(() => buildAdapter.TriggerBuild(Arg.IsAny <string>())).Returns("SUCCESS");

            var    jenkinsBuild = new BuildService(buildAdapter);
            string response     = jenkinsBuild.TriggerBuild(string.Empty, "35");

            Assert.AreEqual <string>(
                "SUCCESS",
                response,
                "The build was not triggered successfully.");
        }