From 10348faaec492e2a31f00384a603111d0df1bf45 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 16 Apr 2020 09:17:41 +0400 Subject: [PATCH] Fixed missing serialization settings (#6420); --- .../performance/SerializationTest.java | 25 +++++++++++++++++++ .../java/mage/game/mulligan/Mulligan.java | 3 ++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java b/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java index b3739a93834..1720bdcf10b 100644 --- a/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java +++ b/Mage.Tests/src/test/java/org/mage/test/serverside/performance/SerializationTest.java @@ -3,7 +3,11 @@ package org.mage.test.serverside.performance; import mage.abilities.keyword.InfectAbility; import mage.cards.repository.CardInfo; import mage.cards.repository.CardRepository; +import mage.constants.PhaseStep; +import mage.constants.Zone; import mage.counters.CounterType; +import mage.game.Game; +import mage.game.mulligan.LondonMulligan; import mage.game.permanent.PermanentCard; import mage.game.permanent.PermanentImpl; import mage.remote.traffic.ZippedObjectImpl; @@ -50,4 +54,25 @@ public class SerializationTest extends CardTestPlayerBase { Assert.assertEquals("Must get infected counter", 1, permanent.getCounters(currentGame).getCount(CounterType.M1M1)); } + @Test + public void test_LondonMulligan() { + LondonMulligan mulligan = new LondonMulligan(15); + Object compressed = CompressUtil.compress(mulligan); + Assert.assertTrue("Must be zip", compressed instanceof ZippedObjectImpl); + LondonMulligan uncompressed = (LondonMulligan) CompressUtil.decompress(compressed); + Assert.assertEquals("Must be same", mulligan.getFreeMulligans(), uncompressed.getFreeMulligans()); + } + + @Test + public void test_Game() { + addCard(Zone.BATTLEFIELD, playerA, "Grizzly Bears", 1); + + setStopAt(1, PhaseStep.END_TURN); + execute(); + + Object compressed = CompressUtil.compress(currentGame); + Assert.assertTrue("Must be zip", compressed instanceof ZippedObjectImpl); + Game uncompressed = (Game) CompressUtil.decompress(compressed); + Assert.assertEquals("Must be same", 1, uncompressed.getBattlefield().getAllActivePermanents().size()); + } } diff --git a/Mage/src/main/java/mage/game/mulligan/Mulligan.java b/Mage/src/main/java/mage/game/mulligan/Mulligan.java index 43abf6c2840..52bab013f7b 100644 --- a/Mage/src/main/java/mage/game/mulligan/Mulligan.java +++ b/Mage/src/main/java/mage/game/mulligan/Mulligan.java @@ -4,9 +4,10 @@ import mage.game.Game; import mage.game.events.GameEvent; import mage.players.Player; +import java.io.Serializable; import java.util.*; -public abstract class Mulligan { +public abstract class Mulligan implements Serializable { protected final int freeMulligans; protected final Map usedFreeMulligans = new HashMap<>();