Example #1
0
 def test_create_agent(self, create_agent_payload, agent):
     payload = Payload(create_agent_payload.SerializeToString())
     state = MagicMock()
     signer = agent.public_key
     handler = GaiachainTransactionHandler()
     handler._apply_action(payload, state, signer)
     assert state.set_agent.called
Example #2
0
 def test_create_entity(self, create_entity_payload, agent_producer):
     payload = Payload(create_entity_payload.SerializeToString())
     state = MagicMock()
     state.get_agent.return_value = agent_producer
     signer = agent_producer.public_key
     handler = GaiachainTransactionHandler()
     handler._apply_action(payload, state, signer)
     assert state.set_entity.called
Example #3
0
 def test_move_entity_batch_from_producer_arrived_to_departed(
     self,
     move_entity_batch_payload_producer_arrived,
     entity_batch_producer_arrived,
     agent_producer,
 ):
     payload = Payload(
         move_entity_batch_payload_producer_arrived.SerializeToString())
     state = MagicMock()
     state.get_entity_batch.return_value = entity_batch_producer_arrived
     state.get_agent.side_effect = [agent_producer, agent_producer]
     signer = agent_producer.public_key
     handler = GaiachainTransactionHandler()
     handler._apply_action(payload, state, signer)
     expected_batch = EntityBatch()
     expected_batch.CopyFrom(entity_batch_producer_arrived)
     expected_batch.status = EntityBatch.DEPARTED
     state.set_entity_batch.assert_called_with(expected_batch)
Example #4
0
    def test_move_entity_batch_from_exporter_arrived_to_departed_and_finish(
        self,
        move_entity_batch_payload_exporter_arrived,
        entity_batch_exporter_arrived,
        agent_exporter,
    ):
        payload = Payload(
            move_entity_batch_payload_exporter_arrived.SerializeToString())
        state = MagicMock()
        state.get_entity_batch.return_value = entity_batch_exporter_arrived
        state.get_agent.side_effect = [agent_exporter, agent_exporter]
        signer = agent_exporter.public_key
        handler = GaiachainTransactionHandler()
        handler._apply_action(payload, state, signer)

        called_args_eb = state.set_entity_batch.call_args[0][0]
        assert called_args_eb.owner_public_key == signer
        assert called_args_eb.status == EntityBatch.DEPARTED
        assert called_args_eb.finished is True
        assert called_args_eb.id == entity_batch_exporter_arrived.id

        called_args_e = state.set_entity.call_args[0][0]
        assert called_args_e.finished_timestamp > 0
Example #5
0
 def test_create_agent_payload(self, create_agent_payload):
     payload = create_agent_payload.SerializeToString()
     p = Payload(payload)
     assert p.action == SCPayload.CREATE_AGENT
     assert p.timestamp == create_agent_payload.timestamp
     assert p.data == create_agent_payload.create_agent
Example #6
0
 def test_move_entity_batch_payload(self, move_entity_batch_payload):
     payload = move_entity_batch_payload.SerializeToString()
     p = Payload(payload)
     assert p.action == SCPayload.MOVE_ENTITY_BATCH
     assert p.timestamp == move_entity_batch_payload.timestamp
     assert p.data == move_entity_batch_payload.move_entity_batch
Example #7
0
 def test_create_entity_batch_payload(self, create_entity_batch_payload):
     payload = create_entity_batch_payload.SerializeToString()
     p = Payload(payload)
     assert p.action == SCPayload.CREATE_ENTITY_BATCH
     assert p.timestamp == create_entity_batch_payload.timestamp
     assert p.data == create_entity_batch_payload.create_entity_batch
Example #8
0
 def apply(self, transaction, context):
     header = transaction.header
     signer = header.signer_public_key
     payload = Payload.from_bytes(transaction.payload)
     state = State(context)
     self._apply_action(payload, state, signer)