public void ContextSetup()
            {
                var masterModel  = new MasterModel();
                var server1      = masterModel.CreateCruiseServer(x => x.Url = "http://www.example.com/1");
                var server2      = masterModel.CreateCruiseServer(x => x.Url = "http://www.example.com/2");
                var ccReaderData = new Projects {
                    Items = new[] { new ProjectsProject(), new ProjectsProject() }
                };
                var mappedData = new CcProjectCollectionViewModel
                {
                    Items = new[] { new CcProjectViewModel {
                                        Name = "Homer Wuz Here"
                                    } }
                };

                var ccReaderResponse =
                    NetworkResponse.Success(ccReaderData);

                var statusProvider = S <ISystemStatusProvider>();

                statusProvider.Stub(x => x.GetSystemStatus()).Return(masterModel);

                var ccReader = S <ICcReader>();

                ccReader.Stub(x => x.GetStatus("http://www.example.com/1")).Return(ccReaderResponse);

                var mapper = S <IMapper>();

                mapper.Stub(x => x.Map <Projects, CcProjectCollectionViewModel>(ccReaderData)).Return(mappedData);

                var provider = new CruiseProjectModelProvider(ccReader, mapper, statusProvider);

                _result = provider.GetProjects(server1.Id);
            }
            public void ContextSetup()
            {
                var masterModel = new MasterModel();

                _project1 = masterModel.CreateProject(); //1
                _project2 = masterModel.CreateProject(); //2

                var server1 = masterModel.CreateCruiseServer(x =>
                {
                    x.Url  = "http://www.example.com/1";
                    x.Name = "1";
                });
                var server2 = masterModel.CreateCruiseServer(x =>
                {
                    x.Url  = "http://www.example.com/2";
                    x.Name = "2";
                });

                var statusProvider = S <ISystemStatusProvider>();

                statusProvider.Stub(x => x.GetSystemStatus())
                .Return(masterModel);

                var cruiseProjectProvider = S <ICruiseProjectModelProvider>();
                var projectResponse1      = NetworkResponse.Success(new CcProjectCollectionViewModel
                {
                    Items = new[] { new CcProjectViewModel {
                                        Name = "1.1"
                                    }, new CcProjectViewModel {
                                        Name = "1.2"
                                    } }
                });
                var projectResponse2 = NetworkResponse.Success(new CcProjectCollectionViewModel
                {
                    Items = new[] { new CcProjectViewModel {
                                        Name = "2.1"
                                    }, new CcProjectViewModel {
                                        Name = "2.2"
                                    } }
                });

                cruiseProjectProvider.Stub(x => x.GetProjects(server1.Id)).Return(projectResponse1);
                cruiseProjectProvider.Stub(x => x.GetProjects(server2.Id)).Return(projectResponse2);

                var mapper = new StubMapper()
                             .StubResult(new[]
                {
                    new EditProjectCruiseServerViewModel {
                        Url = "Mapped 1", Id = server1.Id
                    },
                    new EditProjectCruiseServerViewModel {
                        Url = "Mapped 2", Id = server2.Id
                    }
                });
                var provider = new AdminViewModelProvider(statusProvider, mapper, cruiseProjectProvider);

                _result = provider.GetEditProjectViewModel(null);
            }
        public NetworkResponse <CcProjectCollectionViewModel> GetProjects(Guid serverId)
        {
            var server   = _statusProvider.GetSystemStatus().CruiseServers.Single(x => x.Id.Equals(serverId));
            var ccResult = _ccReader.GetStatus(server.Url);

            if (ccResult.IsSuccessful)
            {
                var ccProjects = ccResult.Data;
                var viewModel  = _mapper.Map <Projects, CcProjectCollectionViewModel>(ccProjects);
                return(NetworkResponse.Success(viewModel));
            }
            return(NetworkResponse.Fail <CcProjectCollectionViewModel>(string.Format("Could not reach cruise server at URL: [{0}]", server.Url), ccResult.Exception));
        }
            public void ContextSetup()
            {
                _masterModel = new MasterModel();
                var cruiseServer = _masterModel.CreateCruiseServer(x =>
                {
                    x.Url  = "https://example.com/server1";
                    x.Name = "Server 1";
                });

                _zBuildLightsProject = _masterModel.CreateProject();
                _zBuildLightsProject.CruiseProjectAssociations = new[]
                {
                    new CruiseProjectAssociation {
                        Name = "Project 1.1", ServerId = cruiseServer.Id
                    },
                    new CruiseProjectAssociation {
                        Name = "Project 1.2", ServerId = cruiseServer.Id
                    },
                    new CruiseProjectAssociation {
                        Name = "Project 1.3", ServerId = cruiseServer.Id
                    }
                };

                var ccReaderDataServer1 = new Projects
                {
                    Items = new ProjectsProject[]
                    {
                        New.ProjectsProject.Name("Project 1.1")
                        .Activity(CcBuildActivity.Sleeping)
                        .Status(CcBuildStatus.Unknown),
                        New.ProjectsProject.Name("Project 1.2")
                        .Activity(CcBuildActivity.Sleeping)
                        .Status(CcBuildStatus.Success),
                        New.ProjectsProject.Name("Project 1.3")
                        .Activity(CcBuildActivity.Sleeping)
                        .Status(CcBuildStatus.Success),
                        New.ProjectsProject.Name("Detractor")
                        .Activity(CcBuildActivity.Sleeping)
                        .Status(CcBuildStatus.Success)
                    }
                };

                var cruiseReader = new StubCcReader()
                                   .WithResponse(cruiseServer.Url, NetworkResponse.Success(ccReaderDataServer1));

                var updater = new ProjectStatusUpdater(cruiseReader);

                updater.UpdateAllProjectStatuses(_masterModel);
            }
예제 #5
0
        public NetworkResponse <Projects> GetStatus(string url)
        {
            try
            {
                var request = WebRequest.Create(url);

                Projects projects;
                using (var response = request.GetResponse())
                    using (var stream = response.GetResponseStream())
                        using (var reader = new StreamReader(stream))
                        {
                            var serializer = new XmlSerializer(typeof(Projects));
                            projects = (Projects)serializer.Deserialize(reader);
                        }

                return(NetworkResponse.Success(projects));
            }
            catch (Exception e)
            {
                Log.ErrorException("Exception when trying to get status from Cruise server.", e);
                return(NetworkResponse.Fail <Projects>(string.Format("{0}: {1}", e.GetType().Name, e.Message)));
            }
        }
            public void ContextSetup()
            {
                _projectViewModel = new EditProjectViewModel {
                    Name = "I'm Mapped"
                };

                var masterModel            = new MasterModel();
                var project1               = masterModel.CreateProject(); //1
                var projectWeAreLookingFor = masterModel.CreateProject(); //2
                var project3               = masterModel.CreateProject(); //3

                var server1 = masterModel.CreateCruiseServer(x =>
                {
                    x.Url  = "http://www.example.com/1";
                    x.Name = "1";
                });
                var server2 = masterModel.CreateCruiseServer(x =>
                {
                    x.Url  = "http://www.example.com/2";
                    x.Name = "2";
                });

                var statusProvider = S <ISystemStatusProvider>();

                statusProvider.Stub(x => x.GetSystemStatus())
                .Return(masterModel);

                var cruiseProjectProvider = S <ICruiseProjectModelProvider>();
                var projectResponse1      = NetworkResponse.Success(new CcProjectCollectionViewModel
                {
                    Items = new[] { new CcProjectViewModel {
                                        Name = "1.1"
                                    }, new CcProjectViewModel {
                                        Name = "1.2"
                                    } }
                });
                var projectResponse2 = NetworkResponse.Success(new CcProjectCollectionViewModel
                {
                    Items = new[] { new CcProjectViewModel {
                                        Name = "2.1"
                                    }, new CcProjectViewModel {
                                        Name = "2.2"
                                    } }
                });

                cruiseProjectProvider.Stub(x => x.GetProjects(server1.Id)).Return(projectResponse1);
                cruiseProjectProvider.Stub(x => x.GetProjects(server2.Id)).Return(projectResponse2);


                var mapper = S <IMapper>();

                mapper.Stub(x => x.Map <Project, EditProjectViewModel>(projectWeAreLookingFor))
                .Return(_projectViewModel);
                mapper.Stub(x => x.Map <CruiseServer[], EditProjectCruiseServerViewModel[]>(masterModel.CruiseServers))
                .Return(new[]
                {
                    new EditProjectCruiseServerViewModel {
                        Url = "foo 1", Id = server1.Id
                    },
                    new EditProjectCruiseServerViewModel {
                        Url = "foo 2", Id = server2.Id
                    }
                });
                var provider = new AdminViewModelProvider(statusProvider, mapper, cruiseProjectProvider);

                _result = provider.GetEditProjectViewModel(projectWeAreLookingFor.Id);
            }