Пример #1
0
class RemoteGameTest(unittest.TestCase):
    
    def testGameServiceHittingBlankSpots(self):
        self.startGame().withPositionOcupied(self.inPosition(1, 1)).hitTarget(self.inPosition(0,0)).expectBoatsAlive(True)
    
    def testGameServiceTargetHitted(self):
        self.startGame().withPositionOcupied(self.inPosition(1, 1)).hitTarget(self.inPosition(1, 1)).expectBoatsAlive(False)
    
    def startGame(self):
        self.service = RemoteGame(Board(2, 2))
        return self
    
    def withPositionOcupied(self, position):
        self.board = Board(2, 2)
        self.board.setBoatPosition(position)
        self.service = RemoteGame(self.board)
        return self
    
    def hitTarget(self, position):
        self.service.hitTarget(position)
        return self
    
    def inPosition(self, row, column):
        return Position(row, column)

    def expectBoatsAlive(self, expectedBoatsAlive):
        self.assertEquals(expectedBoatsAlive, self.service.hasBoatsAlive())
        return self
Пример #2
0
class RemoteGameTest(trialunit.TestCase):
    def setUp(self):
        self.board = Board(2, 2)
        self.server = reactor.listenTCP(0, pb.PBServerFactory(RemoteGame(self.board)))
        clientFactory = pb.PBClientFactory()
        reactor.connectTCP("localhost", self.server.getHost().port,clientFactory)
        def gotRoot(ref):
            self.ref = ref
        return clientFactory.getRootObject().addCallback(gotRoot)

    def tearDown(self):
        self.ref.broker.transport.loseConnection()
        return self.server.stopListening()

    def test_BoardHasNoAliveBoats(self):
        d = self.ref.callRemote("hasBoatsAlive")
        def callback(res):
            self.failUnless(res is False)
        d.addCallback(callback)
        return d
    
    def test_RemoteHitShouldAffectBoard(self):
        self.board.setBoatPosition(Position(1,1))
        d = self.ref.callRemote("hasBoatsAlive")
        d.addCallback(lambda hasBoats: self.failUnless(hasBoats is True))
        
        d = self.ref.callRemote("hitTarget", 1, 1)
        d.addCallback(lambda hitted: self.failUnless(hitted is True, "Hit failed"))
        
        d = self.ref.callRemote("hasBoatsAlive")
        d.addCallback(lambda hasBoats: self.failUnless(hasBoats is False, "Couldn' hit target remotely"))
        return d
Пример #3
0
 def setUp(self):
     self.board = Board(2, 2)
     self.server = reactor.listenTCP(0, pb.PBServerFactory(RemoteGame(self.board)))
     clientFactory = pb.PBClientFactory()
     reactor.connectTCP("localhost", self.server.getHost().port,clientFactory)
     def gotRoot(ref):
         self.ref = ref
     return clientFactory.getRootObject().addCallback(gotRoot)
Пример #4
0
 def withPositionOcupied(self, position):
     self.board = Board(2, 2)
     self.board.setBoatPosition(position)
     self.service = RemoteGame(self.board)
     return self