fix(rules): Serializers
Added small changes
This commit is contained in:
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.{DeserializationContext, JsonDeserializer}
|
|||||||
import de.nowchess.api.move.{MoveType, PromotionPiece}
|
import de.nowchess.api.move.{MoveType, PromotionPiece}
|
||||||
|
|
||||||
class MoveTypeDeserializer extends JsonDeserializer[MoveType]:
|
class MoveTypeDeserializer extends JsonDeserializer[MoveType]:
|
||||||
|
// scalafix:off DisableSyntax.throw
|
||||||
override def deserialize(p: JsonParser, ctx: DeserializationContext): MoveType =
|
override def deserialize(p: JsonParser, ctx: DeserializationContext): MoveType =
|
||||||
val node = p.getCodec.readTree[ObjectNode](p)
|
val node = p.getCodec.readTree[ObjectNode](p)
|
||||||
node.get("type").asText() match
|
node.get("type").asText() match
|
||||||
@@ -15,3 +16,4 @@ class MoveTypeDeserializer extends JsonDeserializer[MoveType]:
|
|||||||
case "enPassant" => MoveType.EnPassant
|
case "enPassant" => MoveType.EnPassant
|
||||||
case "promotion" => MoveType.Promotion(PromotionPiece.valueOf(node.get("piece").asText()))
|
case "promotion" => MoveType.Promotion(PromotionPiece.valueOf(node.get("piece").asText()))
|
||||||
case t => throw new JsonParseException(p, s"Unknown move type: $t")
|
case t => throw new JsonParseException(p, s"Unknown move type: $t")
|
||||||
|
// scalafix:on DisableSyntax.throw
|
||||||
|
|||||||
@@ -32,11 +32,13 @@ class JsonSerializersTest extends AnyFunSuite with Matchers:
|
|||||||
|
|
||||||
// ── SquareKeyDeserializer ─────────────────────────────────────────
|
// ── SquareKeyDeserializer ─────────────────────────────────────────
|
||||||
|
|
||||||
|
// scalafix:off DisableSyntax.null
|
||||||
test("SquareKeyDeserializer returns square for valid key"):
|
test("SquareKeyDeserializer returns square for valid key"):
|
||||||
new SquareKeyDeserializer().deserializeKey("e4", null) shouldBe e4
|
new SquareKeyDeserializer().deserializeKey("e4", null) shouldBe e4
|
||||||
|
|
||||||
test("SquareKeyDeserializer returns null for invalid key"):
|
test("SquareKeyDeserializer returns null for invalid key"):
|
||||||
new SquareKeyDeserializer().deserializeKey("z9", null) shouldBe null
|
new SquareKeyDeserializer().deserializeKey("z9", null) shouldBe null
|
||||||
|
// scalafix:on DisableSyntax.null
|
||||||
|
|
||||||
// ── SquareSerializer/Deserializer ─────────────────────────────────
|
// ── SquareSerializer/Deserializer ─────────────────────────────────
|
||||||
|
|
||||||
@@ -46,8 +48,10 @@ class JsonSerializersTest extends AnyFunSuite with Matchers:
|
|||||||
test("SquareDeserializer reads valid square string"):
|
test("SquareDeserializer reads valid square string"):
|
||||||
mapper.readValue(""""e4"""", classOf[Square]) shouldBe e4
|
mapper.readValue(""""e4"""", classOf[Square]) shouldBe e4
|
||||||
|
|
||||||
|
// scalafix:off DisableSyntax.null
|
||||||
test("SquareDeserializer returns null for invalid square string"):
|
test("SquareDeserializer returns null for invalid square string"):
|
||||||
mapper.readValue(""""z9"""", classOf[Square]) shouldBe null
|
mapper.readValue(""""z9"""", classOf[Square]) shouldBe null
|
||||||
|
// scalafix:on DisableSyntax.null
|
||||||
|
|
||||||
// ── MoveTypeSerializer ────────────────────────────────────────────
|
// ── MoveTypeSerializer ────────────────────────────────────────────
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user