public shared()
        {
            this.firstDate = new DateTime(2000, 10, 10);
            this.secondDate = new DateTime(2000, 10, 11);
            this.failedBuild1 = new Build() { FinishedTime = firstDate, Status = DomainModel.CI.BuildStatus.FinishedWithFailure };
            this.failedBuild2 = new Build() { FinishedTime = firstDate, Status = DomainModel.CI.BuildStatus.FinishedWithFailure };
            this.failedBuild3 = new Build() { FinishedTime = secondDate, Status = DomainModel.CI.BuildStatus.FinishedWithFailure };
            this.successBuild1 = new Build() { FinishedTime = firstDate, Status = DomainModel.CI.BuildStatus.FinishedSuccefully };
            this.successBuild2 = new Build() { FinishedTime = secondDate, Status = DomainModel.CI.BuildStatus.FinishedSuccefully };

            this.project1 = new CIProject("test one");
            project1.AddBuild(failedBuild1);
            project1.AddBuild(successBuild1);

            this.project2 = new CIProject("test two");
            project2.AddBuild(failedBuild2);
            project2.AddBuild(failedBuild3);
            project2.AddBuild(successBuild2);

            this.ciserver = new CIServer("server", "serverurl");
            ciserver.AddProject(project1);
            ciserver.AddProject(project2);

            repository.Setup(r => r.Get(It.IsAny<AllSpecification<CIServer>>()))
                .Returns(new List<CIServer>() { ciserver });
        }
Beispiel #2
0
        public void assure_object_graph_is_Serialized_correctly()
        {
            DataContractSerializer serializer = new DataContractSerializer(typeof(IEnumerable<CIServer>), null, int.MaxValue,false, true, null);
            

            CIServer server = new CIServer() {Name = "Test name", Url = "http://www.smeedee.org"};
            CIProject project = new CIProject(){Server = server, ProjectName = "SmeeDee"};
            Build build = new Build() { SystemId = "123"};
            server.AddProject(project);
            project.AddBuild(build);

            List<CIServer> listOfServers = new List<CIServer>();
            listOfServers.Add(server);

            MemoryStream stream = new MemoryStream();

            serializer.WriteObject(stream, listOfServers);
            stream.Position = 0;

            object deSerialized = serializer.ReadObject(stream);

            var deSerializedServerList = deSerialized as IEnumerable<CIServer>;

            var deSerializedServer = deSerializedServerList.ElementAt(0);
            deSerializedServer.Name.ShouldBe("Test name");
            deSerializedServer.Url.ShouldBe("http://www.smeedee.org");

            deSerializedServer.Projects.Count() .ShouldBe(1);
            deSerializedServer.Projects.ElementAt(0).ProjectName.ShouldBe("SmeeDee");
            deSerializedServer.Projects.ElementAt(0).Server.Name.ShouldBe("Test name");
            deSerializedServer.Projects.ElementAt(0).Server.Url.ShouldBe("http://www.smeedee.org");

            deSerializedServer.Projects.ElementAt(0).Builds.Count().ShouldBe(1);
            deSerializedServer.Projects.ElementAt(0).Builds.ElementAt(0).SystemId.ShouldBe("123");
            deSerializedServer.Projects.ElementAt(0).Builds.ElementAt(0).Project.ProjectName.ShouldBe("SmeeDee");
            deSerializedServer.Projects.ElementAt(0).Builds.ElementAt(0).Project.Server.Name.ShouldBe("Test name");
        }
        private CIProject ExtractProjectInfoFromXmlElement(XmlElement projectElement)
        {
            var projectInfo = new CIProject(projectElement.GetAttribute("name"));

            Build latestBuild = ExtractBuildFromXmlElement(projectElement, projectInfo.ProjectName );

            projectInfo.AddBuild(latestBuild);
            LinkProjectBuildsToProject(projectInfo);

            return projectInfo;
        }
        private void SetupObjectGraph()
        {
            this.server = new CIServer()
            {
                Name = "CruiseControl.NET",
                Url = "http://agileprojectdashboard.org/ccnet"
            };

            this.project = new CIProject(TESTPROJECTNAME_ONE)
            {
                SystemId = "ProjectNr.1",
            };

            var project2 = new CIProject(TESTPROJECTNAME_TWO)
            {
                SystemId = "ProjectNr.2",
            };

            server.AddProject(project);
            server.AddProject(project2);


            var build1 = new Build
            {
                SystemId = "Build.1",
                StartTime = new DateTime(2000, 1, 1),
                FinishedTime = new DateTime(2000, 1, 2),
                Status = BuildStatus.FinishedSuccefully,
                Trigger = new CodeModifiedTrigger("tuxbear")
            };

            var build2 = new Build
            {
                SystemId = "Build.2",
                StartTime = new DateTime(2000, 1, 3),
                FinishedTime = new DateTime(2000, 1, 4),
                Status = BuildStatus.FinishedWithFailure,
                Trigger = new CodeModifiedTrigger("tuxbear")
            };

            var build3 = new Build
            {
                SystemId = "Build.3",
                StartTime = new DateTime(2000, 1, 5),
                FinishedTime = new DateTime(2000, 1, 6),
                Status = BuildStatus.Unknown,
                Trigger = new CodeModifiedTrigger("tuxbear")
            };

            var build4 = new Build
            {
                SystemId = "Build.4",
                StartTime = new DateTime(2000, 1, 7),
                FinishedTime = new DateTime(2000, 1, 8),
                Status = BuildStatus.Building,
                Trigger = new CodeModifiedTrigger("tuxbear")
            };

            project.AddBuild(build1);
            project.AddBuild(build2);
            project.AddBuild(new Build
            {
                SystemId = "Build.Common",
                StartTime = DateTime.MinValue,
                FinishedTime = DateTime.MaxValue,
                Status = BuildStatus.FinishedSuccefully,
                Trigger = new CodeModifiedTrigger("tuxbear")
            });

            project2.AddBuild(build3);
            project2.AddBuild(build4);
            project2.AddBuild(new Build
            {
                SystemId = "Build.Common",
                StartTime = DateTime.MinValue,
                FinishedTime = DateTime.MaxValue,
                Status = BuildStatus.FinishedSuccefully,
                Trigger = new CodeModifiedTrigger("tuxbear")
            });

        }