public void Assure_it_accept_a_ISessionFactory_as_argument()
 {
     var genericRepository = new CIServerDatabaseRepository(CreateSessionFactory());
 }
        public void Assure_identical_builds_from_different_projects_are_distinct_in_database()
        {
            var ciProjectPersister = new CIServerDatabaseRepository(factory);
            ciProjectPersister.Save(server);

            var dbResults = factory.OpenSession().CreateCriteria(typeof(CIServer)).List<CIServer>();

            dbResults.Count.ShouldBe(1);
            dbResults[0].Name.ShouldBe(server.Name);
            var commonBuildInProject1 = dbResults[0].Projects.ElementAt(0).Builds.Last();
            var commonBuildInProject2 = dbResults[0].Projects.ElementAt(1).Builds.Last();

            commonBuildInProject1.ShouldNotBe(commonBuildInProject2);
        }
        public void Setup()
        {
            DeleteDatabaseIfExists();
            RecreateSessionFactory();

            var sessionFactory = NHibernateFactory.AssembleSessionFactory(DATABASE_TEST_FILE);
            var persister = new CIServerDatabaseRepository(sessionFactory);

            var server = new CIServer("goeran", "http://goeran.no");
            server.AddProject(new CIProject("goeran - development")
            {
                SystemId = "1"
            });

            var server2 = new CIServer("jonas", "http://jonas.no");
            server2.AddProject(new CIProject("jonas - development")
            {
                SystemId = "2"
            });

            persister.Save(server);
            persister.Save(server2);

            session = sessionFactory.OpenSession();
        }
        public void Assure_entire_hierarcy_is_correctly_persisted()
        {

            var persister = new  CIServerDatabaseRepository(factory);

            persister.Save(server);

            RecreateSessionFactory();

            var results = factory.OpenSession().CreateCriteria(typeof(CIServer)).List<CIServer>();

            results.Count.ShouldBe(1);

            var ciServer = results[0];
            ciServer.Projects.Count().ShouldBe(2);

            var project1 = ciServer.Projects.ElementAt(0);
            var project2 = ciServer.Projects.ElementAt(1);

            project1.ProjectName.ShouldBe(TESTPROJECTNAME_ONE);
            project1.Server.ShouldBe(ciServer);
            project1.Builds.Count().ShouldBe(3);
            project1.Builds.ElementAt(0).Project.ShouldBe(project1);
            project1.Builds.ElementAt(1).Project.ShouldBe(project1);
            project1.Builds.ElementAt(2).Project.ShouldBe(project1);

            project2.ProjectName.ShouldBe(TESTPROJECTNAME_TWO);
            project2.Server.ShouldBe(ciServer);
            project2.Builds.Count().ShouldBe(3);
            project2.Builds.ElementAt(0).Project.ShouldBe(project2);
            project2.Builds.ElementAt(1).Project.ShouldBe(project2);
            project2.Builds.ElementAt(2).Project.ShouldBe(project2);
        }
示例#5
0
 public CIRepositoryService()
 {
     repository = new CIServerDatabaseRepository(DefaultSessionFactory.Instance);
 }