class DatastealRunOrderTest(RunOrdersTest): def setUp(self): super(DatastealRunOrderTest, self).setUp() self.dso = DataStealOrder( stealer_corporation=self.c2, player=self.p, target_corporation=self.c, additional_percents=0, ) self.dso.clean() self.dso.save() self.set_to_zero(self.dso.target_corporation) def tearDown(self): self.set_to_original(self.dso.target_corporation) def test_datasteal_success(self): """ Datasteal benefits the stealer 1 asset without costing the stolen """ begin_assets_stealer = self.dso.stealer_corporation.assets self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual( self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer + 1) def test_datasteal_failure(self): """ Failed datasteal should not change corporation assets. """ begin_assets_stealer = self.dso.stealer_corporation.assets self.dso.additional_percents = 0 self.dso.hidden_percents = -10 self.dso.save() self.dso.resolve() self.assertEqual( self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer) def test_datasteal_interception(self): """ Intercepted datasteal should not change corporation assets. """ begin_assets_stealer = self.dso.stealer_corporation.assets po = ProtectionOrder(player=self.p, protected_corporation=self.c, defense=ProtectionOrder.DATASTEAL) po.clean() po.save() po.additional_percents = 10 po.save() self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual( self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer)
class DefensiveRunOrderTest(RunOrdersTest): def setUp(self): super(DefensiveRunOrderTest, self).setUp() self.dso = DataStealOrder( stealer_corporation=self.c2, player=self.p, target_corporation=self.c, additional_percents=0, ) self.dso.clean() self.dso.save() self.so = SabotageOrder( player=self.p, target_corporation=self.c, additional_percents=0, ) self.so.clean() self.so.save() self.set_to_zero(self.so.target_corporation) def tearDown(self): self.set_to_original(self.so.target_corporation) def test_has_base_value(self): """ Protection has defaut protection values """ po = ProtectionOrder( player=self.p, protected_corporation=self.c, defense=ProtectionOrder.DATASTEAL, additional_percents=1, ) po.save() self.assertEqual( po.get_success_probability(), po.additional_percents * 10 + po.BASE_SUCCESS_PROBABILITY[po.defense]) @override_base_corporations def test_corpo_can_protect_alone(self): """ Corporations can protect themselves """ begin_assets_stealer = self.dso.stealer_corporation.assets begin_assets_stolen = self.dso.target_corporation.assets self.dso.target_corporation.base_corporation.datasteal = 100 self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual( self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer) self.assertEqual( self.reload(self.dso.target_corporation).assets, begin_assets_stolen)
class DatastealRunOrderTest(EngineTestCase): def setUp(self): super(DatastealRunOrderTest, self).setUp() common_corporation_market = self.c.get_common_corporation_market(self.c2) self.dso = DataStealOrder( stealer_corporation=self.c2, player=self.p, target_corporation_market=common_corporation_market, additional_percents=0, ) self.dso.clean() self.dso.save() def test_datasteal_success(self): """ Datasteal benefits the stealer 1 asset without costing the stolen The 2 corporations must have a common market """ begin_assets_stealer = self.dso.stealer_corporation.assets self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual(self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer + 1) def test_datasteal_failure(self): """ Failed datasteal should not change corporation assets. """ begin_assets_stealer = self.dso.stealer_corporation.assets self.dso.additional_percents = 0 self.dso.hidden_percents = -10 self.dso.save() self.dso.resolve() self.assertEqual(self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer) @override_max_protection def test_datasteal_interception(self): """ Intercepted datasteal should not change corporation assets. """ begin_assets_stealer = self.dso.stealer_corporation.assets po = ProtectionOrder( player=self.p, protected_corporation_market=self.dso.target_corporation_market, ) po.clean() po.save() po.additional_percents = 10 po.save() self.dso.additional_percents = 10 self.dso.save() self.dso.resolve() self.assertEqual(self.reload(self.dso.stealer_corporation).assets, begin_assets_stealer)