def getByName( self, name ):
     resolver = MilestoneRelationshipResolver( name, self._db )
     componentIDs = resolver.getAllAssignedComponentIDs()
     components = self._componentFactory.getAllByNames( componentIDs )
     projectIDs = resolver.getAllAssignedProjectIDs()
     projects = self._projectFactory.getAllByNames( projectIDs )
     
     return Milestone( name, components, projects )
    def testAssignProject( self ):
        resolver1 = MilestoneRelationshipResolver( 'test-milestone', self._db )
        resolver2 = MilestoneRelationshipResolver( 'test-milestone-2', self._db )
        resolver1.assignToProjectID( 'test-project-name' )
        resolver2.assignToProjectID( 'another-project-name' )

        projects1 = resolver1.getAllAssignedProjectIDs()
        projects2 = resolver2.getAllAssignedProjectIDs()
        self.assertEquals([ 'test-project-name' ], projects1 )
        self.assertEquals([ 'another-project-name' ], projects2 )
    def testAssignComponent( self ):
        resolver1 = MilestoneRelationshipResolver( 'test-milestone', self._db ) 
        resolver2 = MilestoneRelationshipResolver( 'test-milestone-2', self._db ) 
        resolver1.assignToComponentID( 'test-component-name' )
        resolver2.assignToComponentID( 'another-component-name' )

        components1 = resolver1.getAllAssignedComponentIDs()
        components2 = resolver2.getAllAssignedComponentIDs()
        self.assertEquals([ 'test-component-name' ], components1 )
        self.assertEquals([ 'another-component-name' ], components2 )
 def testUnassignProject( self ):
     resolver = MilestoneRelationshipResolver( 'test-milestone', self._db )
     resolver.assignToProjectID( 'test-project' )
     projects = resolver.getAllAssignedProjectIDs()
     self.assertEquals([ 'test-project' ], projects )
     
     resolver.unassignFromProjectID( 'test-project' )
     projects = resolver.getAllAssignedProjectIDs()
     self.assertEquals( [], projects )
     self.assertDatabaseContainsNoRow()
 def testUnassignCompoent( self ):
     resolver = MilestoneRelationshipResolver( 'test-milestone', self._db )
     resolver.assignToComponentID( 'test-component' )
     components = resolver.getAllAssignedComponentIDs()
     self.assertEquals([ 'test-component' ], components )
     
     resolver.unassignFromComponentID( 'test-component' )
     components = resolver.getAllAssignedComponentIDs()
     self.assertEquals( [], components )
     self.assertDatabaseContainsNoRow()
 def testAssignProjectChangesDatabase( self ):
     resolver = MilestoneRelationshipResolver( 'test-milestone', self._db )
     resolver.assignToProjectID( 'project-a' )
     self.assertDatabaseContainsSingleRow( 
             ( 'test-milestone', 'project', 'project-a' ))
 def testAssignComponentsChangedDatabase( self ):
     resolver = MilestoneRelationshipResolver( 'test-milestone', self._db )
     resolver.assignToComponentID( 'component-a' )
     self.assertDatabaseContainsSingleRow( 
             ( 'test-milestone', 'component', 'component-a' ))
 def testGetAllAssignedProjects( self ):
     resolver = MilestoneRelationshipResolver( 'test-milestone', self._db )
     self.assertEquals( [], resolver.getAllAssignedProjectIDs() )