fix broken tests
This commit is contained in:
parent
03e8e9442a
commit
d1353eec60
4 changed files with 929 additions and 869 deletions
|
|
@ -79,9 +79,7 @@ class ColourHexTest : BehaviorSpec({
|
||||||
val colour: Colour = jsonMapperKafkatorio.decodeFromString(colourJson)
|
val colour: Colour = jsonMapperKafkatorio.decodeFromString(colourJson)
|
||||||
val colourHex = colour.toHex()
|
val colourHex = colour.toHex()
|
||||||
colourHex shouldBe ColourHex(r, g, b, a)
|
colourHex shouldBe ColourHex(r, g, b, a)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,5 +1,18 @@
|
||||||
package dev.adamko.kafkatorio.events.schema
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
|
import dev.adamko.kafkatorio.schema.common.Colour
|
||||||
|
import dev.adamko.kafkatorio.schema.common.EntityIdentifiersData
|
||||||
|
import dev.adamko.kafkatorio.schema.common.ForceIndex
|
||||||
|
import dev.adamko.kafkatorio.schema.common.MapEntityPosition
|
||||||
|
import dev.adamko.kafkatorio.schema.common.PlayerIndex
|
||||||
|
import dev.adamko.kafkatorio.schema.common.SurfaceIndex
|
||||||
|
import dev.adamko.kafkatorio.schema.common.Tick
|
||||||
|
import dev.adamko.kafkatorio.schema.common.UnitNumber
|
||||||
|
import dev.adamko.kafkatorio.schema.jsonMapperKafkatorio
|
||||||
|
import dev.adamko.kafkatorio.schema2.KafkatorioPacket2
|
||||||
|
import dev.adamko.kafkatorio.schema2.PlayerUpdate
|
||||||
|
import dev.adamko.kafkatorio.schema2.PlayerUpdateKey
|
||||||
|
import dev.adamko.kafkatorio.schema2.SurfaceUpdate
|
||||||
import io.kotest.core.spec.style.FunSpec
|
import io.kotest.core.spec.style.FunSpec
|
||||||
import io.kotest.matchers.shouldBe
|
import io.kotest.matchers.shouldBe
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
|
|
@ -13,8 +26,9 @@ class UpdatePacketsTest : FunSpec({
|
||||||
{
|
{
|
||||||
"tick": 66,
|
"tick": 66,
|
||||||
"modVersion": "0.3.2",
|
"modVersion": "0.3.2",
|
||||||
"packetType": "UPDATE",
|
"data": {
|
||||||
"update": {
|
"type": "dev.adamko.kafkatorio.schema2.PlayerUpdate",
|
||||||
|
"key": {"index": 1},
|
||||||
"afkTime": 0,
|
"afkTime": 0,
|
||||||
"chatColour": {
|
"chatColour": {
|
||||||
"red": 1,
|
"red": 1,
|
||||||
|
|
@ -33,7 +47,6 @@ class UpdatePacketsTest : FunSpec({
|
||||||
"on_player_joined_game": 1
|
"on_player_joined_game": 1
|
||||||
},
|
},
|
||||||
"forceIndex": 1,
|
"forceIndex": 1,
|
||||||
"index": 1,
|
|
||||||
"isAdmin": true,
|
"isAdmin": true,
|
||||||
"isConnected": true,
|
"isConnected": true,
|
||||||
"isShowOnMap": true,
|
"isShowOnMap": true,
|
||||||
|
|
@ -41,23 +54,20 @@ class UpdatePacketsTest : FunSpec({
|
||||||
"lastOnline": 0,
|
"lastOnline": 0,
|
||||||
"name": "fredthedeadhead",
|
"name": "fredthedeadhead",
|
||||||
"onlineTime": 0,
|
"onlineTime": 0,
|
||||||
"position": {
|
"position": [-58, 13],
|
||||||
"y": 13,
|
"tag": ""
|
||||||
"x": -58
|
|
||||||
},
|
|
||||||
"tag": "",
|
|
||||||
"updateType": "PLAYER"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
test("decode") {
|
test("decode") {
|
||||||
val packet: FactorioEventUpdatePacket = jsonMapperKafkatorio.decodeFromString(json)
|
val packet: KafkatorioPacket2 = jsonMapperKafkatorio.decodeFromString(json)
|
||||||
|
|
||||||
packet shouldBe FactorioEventUpdatePacket(
|
packet shouldBe KafkatorioPacket2(
|
||||||
modVersion = "0.3.2",
|
modVersion = "0.3.2",
|
||||||
tick = Tick(66u),
|
tick = Tick(66u),
|
||||||
update = PlayerUpdate(
|
data = PlayerUpdate(
|
||||||
|
key = PlayerUpdateKey(PlayerIndex(1u)),
|
||||||
afkTime = Tick(0u),
|
afkTime = Tick(0u),
|
||||||
bannedReason = null,
|
bannedReason = null,
|
||||||
characterUnitNumber = null,
|
characterUnitNumber = null,
|
||||||
|
|
@ -67,7 +77,6 @@ class UpdatePacketsTest : FunSpec({
|
||||||
disconnectReason = null,
|
disconnectReason = null,
|
||||||
eventCounts = mapOf("on_player_changed_position" to 7u, "on_player_joined_game" to 1u),
|
eventCounts = mapOf("on_player_changed_position" to 7u, "on_player_joined_game" to 1u),
|
||||||
forceIndex = ForceIndex(1u),
|
forceIndex = ForceIndex(1u),
|
||||||
index = PlayerIndex(1u),
|
|
||||||
isAdmin = true,
|
isAdmin = true,
|
||||||
isConnected = true,
|
isConnected = true,
|
||||||
isRemoved = null,
|
isRemoved = null,
|
||||||
|
|
@ -86,11 +95,11 @@ class UpdatePacketsTest : FunSpec({
|
||||||
}
|
}
|
||||||
|
|
||||||
test("encode") {
|
test("encode") {
|
||||||
val v = FactorioEventUpdatePacket(
|
val v = KafkatorioPacket2(
|
||||||
modVersion = "0.3.2",
|
modVersion = "0.3.2",
|
||||||
tick = Tick(66u),
|
tick = Tick(66u),
|
||||||
update = PlayerUpdate(
|
data = PlayerUpdate(
|
||||||
index = PlayerIndex(1u),
|
key = PlayerUpdateKey(PlayerIndex(1u)),
|
||||||
characterUnitNumber = null,
|
characterUnitNumber = null,
|
||||||
chatColour = null,
|
chatColour = null,
|
||||||
colour = null,
|
colour = null,
|
||||||
|
|
@ -121,21 +130,22 @@ class UpdatePacketsTest : FunSpec({
|
||||||
{
|
{
|
||||||
"modVersion": "0.3.2",
|
"modVersion": "0.3.2",
|
||||||
"tick": 66,
|
"tick": 66,
|
||||||
"update": {
|
"data": {
|
||||||
"index": 1,
|
"type": "dev.adamko.kafkatorio.schema2.PlayerUpdate",
|
||||||
|
"key": {
|
||||||
|
"index": 1
|
||||||
|
},
|
||||||
"name": "fredthedeadhead",
|
"name": "fredthedeadhead",
|
||||||
"afkTime": 0,
|
"afkTime": 0,
|
||||||
"isShowOnMap": true,
|
"isShowOnMap": true,
|
||||||
"isSpectator": false,
|
"isSpectator": false,
|
||||||
"lastOnline": 0,
|
"lastOnline": 0,
|
||||||
"onlineTime": 0,
|
"onlineTime": 0,
|
||||||
"position": {
|
"position": [
|
||||||
"x": -58.0,
|
-58.0,
|
||||||
"y": 13.0
|
13.0
|
||||||
},
|
]
|
||||||
"updateType": "PLAYER"
|
}
|
||||||
},
|
|
||||||
"packetType": "UPDATE"
|
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
}
|
}
|
||||||
|
|
@ -147,10 +157,11 @@ class UpdatePacketsTest : FunSpec({
|
||||||
{
|
{
|
||||||
"tick": 227934,
|
"tick": 227934,
|
||||||
"modVersion": "0.3.2",
|
"modVersion": "0.3.2",
|
||||||
"packetType": "UPDATE",
|
"data": {
|
||||||
"update": {
|
"type": "dev.adamko.kafkatorio.schema2.PlayerUpdate",
|
||||||
"index": 1,
|
"key": {
|
||||||
"updateType": "PLAYER",
|
"index": 1
|
||||||
|
},
|
||||||
"lastOnline": 227932,
|
"lastOnline": 227932,
|
||||||
"onlineTime": 227888,
|
"onlineTime": 227888,
|
||||||
"afkTime": 324,
|
"afkTime": 324,
|
||||||
|
|
@ -158,7 +169,7 @@ class UpdatePacketsTest : FunSpec({
|
||||||
"diedCause": {
|
"diedCause": {
|
||||||
"unitNumber": 66,
|
"unitNumber": 66,
|
||||||
"name": "small-biter",
|
"name": "small-biter",
|
||||||
"type": "unit"
|
"protoType": "unit"
|
||||||
},
|
},
|
||||||
"eventCounts": {
|
"eventCounts": {
|
||||||
"on_player_died": 2
|
"on_player_died": 2
|
||||||
|
|
@ -168,12 +179,12 @@ class UpdatePacketsTest : FunSpec({
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
test("decode") {
|
test("decode") {
|
||||||
val packet: FactorioEventUpdatePacket = jsonMapperKafkatorio.decodeFromString(json)
|
val packet: KafkatorioPacket2 = jsonMapperKafkatorio.decodeFromString(json)
|
||||||
|
|
||||||
packet shouldBe FactorioEventUpdatePacket(
|
packet shouldBe KafkatorioPacket2(
|
||||||
modVersion = "0.3.2",
|
modVersion = "0.3.2",
|
||||||
tick = Tick(227934u),
|
tick = Tick(227934u),
|
||||||
update = PlayerUpdate(
|
data = PlayerUpdate(
|
||||||
afkTime = Tick(324u),
|
afkTime = Tick(324u),
|
||||||
bannedReason = null,
|
bannedReason = null,
|
||||||
characterUnitNumber = null,
|
characterUnitNumber = null,
|
||||||
|
|
@ -182,12 +193,12 @@ class UpdatePacketsTest : FunSpec({
|
||||||
diedCause = EntityIdentifiersData(
|
diedCause = EntityIdentifiersData(
|
||||||
unitNumber = UnitNumber(66u),
|
unitNumber = UnitNumber(66u),
|
||||||
name = "small-biter",
|
name = "small-biter",
|
||||||
type = "unit",
|
protoType = "unit",
|
||||||
),
|
),
|
||||||
disconnectReason = null,
|
disconnectReason = null,
|
||||||
eventCounts = mapOf("on_player_died" to 2u),
|
eventCounts = mapOf("on_player_died" to 2u),
|
||||||
forceIndex = null,
|
forceIndex = null,
|
||||||
index = PlayerIndex(1u),
|
key = PlayerUpdateKey(PlayerIndex(1u)),
|
||||||
isAdmin = null,
|
isAdmin = null,
|
||||||
isConnected = true,
|
isConnected = true,
|
||||||
isRemoved = null,
|
isRemoved = null,
|
||||||
|
|
@ -204,7 +215,38 @@ class UpdatePacketsTest : FunSpec({
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
context("surface update") {
|
||||||
|
//language=json
|
||||||
|
val json = """
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"type": "dev.adamko.kafkatorio.schema2.SurfaceUpdate",
|
||||||
|
"name": "nauvis",
|
||||||
|
"index": 1,
|
||||||
|
"daytime": 0.73
|
||||||
|
},
|
||||||
|
"modVersion": "0.3.2",
|
||||||
|
"tick": 176000
|
||||||
|
}
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
|
val expected = KafkatorioPacket2(
|
||||||
|
tick = Tick(176000u),
|
||||||
|
modVersion = "0.3.2",
|
||||||
|
data = SurfaceUpdate(
|
||||||
|
name = "nauvis",
|
||||||
|
index = SurfaceIndex(1u),
|
||||||
|
daytime = 0.73,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
println(jsonMapperKafkatorio.encodeToString(expected))
|
||||||
|
|
||||||
|
test("decode") {
|
||||||
|
val packet: KafkatorioPacket2 = jsonMapperKafkatorio.decodeFromString(json)
|
||||||
|
packet shouldBe expected
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,19 @@
|
||||||
package dev.adamko.kafkatorio.processor.topology
|
package dev.adamko.kafkatorio.processor.topology
|
||||||
|
|
||||||
import dev.adamko.kafkatorio.processor.KafkatorioTopology
|
|
||||||
import dev.adamko.kafkatorio.processor.admin.TOPIC_GROUPED_MAP_CHUNKS_STATE
|
import dev.adamko.kafkatorio.processor.admin.TOPIC_GROUPED_MAP_CHUNKS_STATE
|
||||||
import dev.adamko.kafkatorio.processor.serdes.jsonMapper
|
import dev.adamko.kafkatorio.processor.serdes.jsonMapper
|
||||||
import dev.adamko.kafkatorio.processor.serdes.kxsBinary
|
import dev.adamko.kafkatorio.processor.serdes.kxsBinary
|
||||||
import dev.adamko.kafkatorio.schema.common.*
|
import dev.adamko.kafkatorio.schema.common.Colour
|
||||||
|
import dev.adamko.kafkatorio.schema.common.ColourHex
|
||||||
|
import dev.adamko.kafkatorio.schema.common.MapChunkPosition
|
||||||
|
import dev.adamko.kafkatorio.schema.common.MapTileDictionary
|
||||||
import dev.adamko.kafkatorio.schema.common.MapTileDictionary.PrototypeKey
|
import dev.adamko.kafkatorio.schema.common.MapTileDictionary.PrototypeKey
|
||||||
|
import dev.adamko.kafkatorio.schema.common.MapTilePosition
|
||||||
|
import dev.adamko.kafkatorio.schema.common.PrototypeName
|
||||||
|
import dev.adamko.kafkatorio.schema.common.SurfaceIndex
|
||||||
|
import dev.adamko.kafkatorio.schema.common.Tick
|
||||||
import dev.adamko.kafkatorio.schema.prototypes.FactorioPrototype2
|
import dev.adamko.kafkatorio.schema.prototypes.FactorioPrototype2
|
||||||
|
import dev.adamko.kafkatorio.schema2.KafkatorioPacket2
|
||||||
import dev.adamko.kafkatorio.schema2.MapChunkUpdate
|
import dev.adamko.kafkatorio.schema2.MapChunkUpdate
|
||||||
import dev.adamko.kafkatorio.schema2.MapChunkUpdateKey
|
import dev.adamko.kafkatorio.schema2.MapChunkUpdateKey
|
||||||
import dev.adamko.kafkatorio.schema2.PrototypesUpdate
|
import dev.adamko.kafkatorio.schema2.PrototypesUpdate
|
||||||
|
|
@ -28,57 +35,65 @@ class GroupMapChunksTest : FunSpec({
|
||||||
test("basic test") {
|
test("basic test") {
|
||||||
val streamsBuilder = StreamsBuilder()
|
val streamsBuilder = StreamsBuilder()
|
||||||
|
|
||||||
val prototypesTopicName = "prototypes-topic"
|
val prototypesTopicName = "kafkatorio.packet.prototypes"
|
||||||
val mapChunkUpdatesTopicName = "map-chunk-updates-topic"
|
val mapChunkUpdatesTopicName = "kafkatorio.packet.map-chunk"
|
||||||
|
|
||||||
val topology = groupMapChunks(streamsBuilder)
|
val topology = groupMapChunks(streamsBuilder)
|
||||||
|
|
||||||
val testDriver = TopologyTestDriver(topology)
|
val testDriver = TopologyTestDriver(topology)
|
||||||
|
|
||||||
val prototypesTestInputTopic: TestInputTopic<FactorioServerId, PrototypesUpdate> =
|
val prototypesTestInputTopic: TestInputTopic<FactorioServerId, KafkatorioPacket2> =
|
||||||
testDriver.createInputTopic(
|
testDriver.createInputTopic(
|
||||||
prototypesTopicName,
|
prototypesTopicName,
|
||||||
jsonMapper.serde<FactorioServerId>().serializer(),
|
jsonMapper.serde<FactorioServerId>().serializer(),
|
||||||
jsonMapper.serde<PrototypesUpdate>().serializer(),
|
jsonMapper.serde<KafkatorioPacket2>().serializer(),
|
||||||
)
|
)
|
||||||
|
|
||||||
val serverId = FactorioServerId("test-server-id")
|
val serverId = FactorioServerId("test-server-id")
|
||||||
|
|
||||||
prototypesTestInputTopic.pipeInput(
|
prototypesTestInputTopic.pipeInput(
|
||||||
serverId,
|
serverId,
|
||||||
PrototypesUpdate(
|
KafkatorioPacket2(
|
||||||
listOf(
|
modVersion = "1.2.3",
|
||||||
FactorioPrototype2.MapTile(
|
tick = Tick(22u),
|
||||||
PrototypeName("fake-proto"),
|
PrototypesUpdate(
|
||||||
layer = 1u,
|
listOf(
|
||||||
mapColour = Colour(0.3f, 0.2f, 0.1f, 1.0f),
|
FactorioPrototype2.MapTile(
|
||||||
collisionMasks = listOf("fake-mask"),
|
PrototypeName("fake-proto"),
|
||||||
order = "fake-order",
|
layer = 1u,
|
||||||
canBeMined = false,
|
mapColour = Colour(0.3f, 0.2f, 0.1f, 1.0f),
|
||||||
|
collisionMasks = listOf("fake-mask"),
|
||||||
|
order = "fake-order",
|
||||||
|
canBeMined = false,
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
val mapChunkUpdatesInputTopic: TestInputTopic<FactorioServerId, MapChunkUpdate> =
|
val mapChunkUpdatesInputTopic: TestInputTopic<FactorioServerId, KafkatorioPacket2> =
|
||||||
testDriver.createInputTopic(
|
testDriver.createInputTopic(
|
||||||
mapChunkUpdatesTopicName,
|
mapChunkUpdatesTopicName,
|
||||||
jsonMapper.serde<FactorioServerId>().serializer(),
|
jsonMapper.serde<FactorioServerId>().serializer(),
|
||||||
jsonMapper.serde<MapChunkUpdate>().serializer(),
|
jsonMapper.serde<KafkatorioPacket2>().serializer(),
|
||||||
)
|
)
|
||||||
|
|
||||||
mapChunkUpdatesInputTopic.pipeInput(
|
mapChunkUpdatesInputTopic.pipeInput(
|
||||||
serverId,
|
serverId,
|
||||||
MapChunkUpdate(
|
KafkatorioPacket2(
|
||||||
key = MapChunkUpdateKey(
|
modVersion = "1.2.3",
|
||||||
MapChunkPosition(11, 22),
|
tick = Tick(44u),
|
||||||
SurfaceIndex(1u),
|
MapChunkUpdate(
|
||||||
),
|
key = MapChunkUpdateKey(
|
||||||
tileDictionary = MapTileDictionary(
|
MapChunkPosition(11, 22),
|
||||||
tilesXY = mapOf(
|
SurfaceIndex(1u),
|
||||||
"1" to mapOf("2" to PrototypeKey(33))
|
|
||||||
),
|
),
|
||||||
protos = mapOf(PrototypeName("fake-proto") to PrototypeKey(33))
|
tileDictionary = MapTileDictionary(
|
||||||
|
tilesXY = mapOf(
|
||||||
|
"1" to mapOf("2" to PrototypeKey(33))
|
||||||
|
),
|
||||||
|
protos = mapOf(PrototypeName("fake-proto") to PrototypeKey(33))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
@ -114,5 +129,4 @@ class GroupMapChunksTest : FunSpec({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue