public void SetUp()
        {
            _projectListResponse = new HudsonProjectListResponse();
            _projectResponse = new HudsonFreeStyleProjectResponse();
            _queueResponse = new HudsonQueueResponse();
            _buildResponse = new HudsonFreeStyleBuildResponse
                             	{
                          BuiltOn = "06/12/2001",
                                                    Duration = SampleBuildDuration,
                                                    FullDisplayName = SampleBuildProjectName + " #" + SampleBuildNumber,
                                                    Id = "2011-12-06_11-47-18",
                                                    IsBuilding = false,
                                                    KeepLog = false,
                                                    Number = SampleBuildNumber,
                                                    Result = "SUCCESS",
                                                    Timestamp = 1323172038606,
                                                    URL = TestApiUri + "/job/"+SampleBuildProjectName+"/"+SampleBuildNumber+"/"
                             	};

            _serviceUnderTest = new HudsonCIApiService(
                FakeFeedRepositoryFactory.ProjectListRepository(_projectListResponse),
                FakeFeedRepositoryFactory.ProjectRepository(_projectResponse),
                FakeFeedRepositoryFactory.QueueRepository(_queueResponse),
                FakeFeedRepositoryFactory.BuildRepository(_buildResponse)
            );
        }
        public static BuildJob FromHudsonAPI(string projectName, HudsonFreeStyleBuildResponse buildjob)
        {
            var changeset = GetChangeSet(buildjob);
            var parameters = GetParamters(buildjob);
            var buildresult = buildjob.Result == null || buildjob.Result.Equals("SUCCESS");

            return new BuildJob(projectName,buildjob.Result, buildjob.Number, buildjob.URL, buildresult, buildjob.Duration,
                                                    buildjob.Timestamp, buildjob.IsBuilding, changeset, parameters);
        }
        private static IEnumerable<SVNChangeSet> GetChangeSet(HudsonFreeStyleBuildResponse build)
        {
            if (build.ChangeSets.Count > 0)
            {
                var changesetitems = build.ChangeSets.Select(item => item);

                return changesetitems.SelectMany(x => x.Items)
                    .Select(changeset => new SVNChangeSet(changeset.User, changeset.Revision));
            }

            return Enumerable.Empty<SVNChangeSet>();
        }
 private static Dictionary<string, string> GetParamters(HudsonFreeStyleBuildResponse build)
 {
     return build.Actions
         .Where(x => x.Parameters.Count > 0)
         .SelectMany(x => x.Parameters).ToDictionary(k => k.Name, v => v.Value);
 }
        public void SetUp()
        {
            var fakedBuildResponse = new HudsonBuildResponse
                                     	{
                                     		Number = 241,
                                     		Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
                                                                };

            var fakedLastBuildResponse = new HudsonLastBuildResponse
            {
                Number = 241,
                Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            var fakedLastCompletedBuildResponse = new HudsonLastCompletedBuildResponse
            {
                Number = 241,
                Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            var fakedLastFailedBuildResponse = new HudsonLastFailedBuildResponse
            {
                Number = 241,
                Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            var fakedLastSuccessfulBuildResponse = new HudsonLastSuccessfulBuildResponse
            {
                Number = 241,
                Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            var fakedLastUnsuccessfulBuildResponse = new HudsonLastUnsuccessfulBuildResponse
            {
                Number = 241,
                Url = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            _projectListResponse = new HudsonProjectListResponse();
            _projectResponse = new HudsonFreeStyleProjectResponse
                               	{
                                                        DisplayName = SampleBuildProjectName,
                                                        Name = SampleBuildProjectName,
                                                        Url = TestApiUri + "/job/" + SampleBuildProjectName + "/",
                                                        Buildable = true,
                                                        Builds = new List<HudsonBuildResponse> { fakedBuildResponse },
                                                        FirstBuild = fakedBuildResponse,
                                                        LastBuild = new List<HudsonLastBuildResponse> { fakedLastBuildResponse },
                                                        LastCompletedBuild = new List<HudsonLastCompletedBuildResponse> { fakedLastCompletedBuildResponse },
                                                        LastFailedBuild = new List<HudsonLastFailedBuildResponse> { fakedLastFailedBuildResponse },
                                                        LastSuccessfulBuild = new List<HudsonLastSuccessfulBuildResponse> { fakedLastSuccessfulBuildResponse },
                                                        LastUnsuccessfulBuild = new List<HudsonLastUnsuccessfulBuildResponse> { fakedLastUnsuccessfulBuildResponse }
                                                    };

            _queueResponse = new HudsonQueueResponse();
            _buildResponse = new HudsonFreeStyleBuildResponse
            {
                BuiltOn = "06/12/2001",
                Duration = SampleBuildDuration,
                FullDisplayName = SampleBuildProjectName + " #" + SampleBuildNumber,
                Id = "2011-12-06_11-47-18",
                IsBuilding = false,
                KeepLog = false,
                Number = SampleBuildNumber,
                Result = "SUCCESS",
                Timestamp = 1323172038606,
                URL = TestApiUri + "/job/" + SampleBuildProjectName + "/" + SampleBuildNumber + "/"
            };

            _serviceUnderTest = new HudsonCIApiService(
                FakeFeedRepositoryFactory.ProjectListRepository(_projectListResponse),
                FakeFeedRepositoryFactory.ProjectRepository(_projectResponse),
                FakeFeedRepositoryFactory.QueueRepository(_queueResponse),
                FakeFeedRepositoryFactory.BuildRepository(_buildResponse)
            );
        }