From e063eb0e7c7a3de486913fe9388837593b2d5bc0 Mon Sep 17 00:00:00 2001 From: Matt King Date: Sat, 7 Sep 2024 11:38:31 +0100 Subject: [PATCH 1/3] [#15] Replace newlines with ZPL equivalent In FieldData, add an option to replace newlines `\n` with ZPL newline representation `\&`. Also update FieldBlock extension to use this option so that any usage of fieldBlock will automatically replace newlines. --- .../sainsburys/k2zpl/command/FieldBlock.kt | 4 +- .../com/sainsburys/k2zpl/command/FieldData.kt | 24 +++++++++-- .../sainsburys/k2zpl/command/FieldDataTest.kt | 41 +++++++++++++++++++ 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt index 09f2d79..24e9c8a 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt @@ -58,7 +58,7 @@ fun ZplBuilder.fieldBlock( * @param x horizontal position of fieldBlock * @param y vertical position of fieldBlock * @param width The width of the text block. - * @param data content of block + * @param data content of block. Any newlines are substituted with \& * @param maxLines The number of lines in the text block. * @param lineSpacing The space between lines. * @param alignment The text alignment within the block. @@ -82,6 +82,6 @@ fun ZplBuilder.fieldBlock( alignment = alignment, hangingIndent = hangingIndent ) - fieldData(data) + fieldData(data, replaceNewlines = true) fieldSeparator() } \ No newline at end of file diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt index 8ca4dee..78a3717 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt @@ -2,15 +2,33 @@ package com.sainsburys.k2zpl.command import com.sainsburys.k2zpl.builder.ZplBuilder -internal data class FieldData(val data: String) : ZplCommand { +internal data class FieldData(val data: String, val replaceNewlines: Boolean = false) : ZplCommand { override val command: CharSequence = "^FD" override val parameters: LinkedHashMap = linkedMapOf("d" to data) + + override fun build(stringBuilder: StringBuilder): StringBuilder { + return with(stringBuilder) { + append(command) + append( + (parameters["d"] as? CharSequence).convertNewlinesIf(replaceNewlines) + ) + } + } + + private fun CharSequence?.convertNewlinesIf(replaceNewlines: Boolean): String { + return when { + this == null -> "" + replaceNewlines -> toString().replace("\n", "\\&") + else -> toString() + } + } } /** * Adds field data. * @param data The data to be added to the field. + * @param replaceNewlines set to true to replace \n with ZPL newline character (\&) */ -fun ZplBuilder.fieldData(data: String) { - command(FieldData(data)) +fun ZplBuilder.fieldData(data: String, replaceNewlines: Boolean = false) { + command(FieldData(data, replaceNewlines)) } \ No newline at end of file diff --git a/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt b/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt index ab55f0f..00a0295 100644 --- a/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt +++ b/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt @@ -23,5 +23,46 @@ class FieldDataTest : DescribeSpec({ } result shouldBe "^FDsome-other-data\n" } + context("replaceNewLines is false") { + it("outputs correct command using raw string") { + val result = k2zpl { + val data = + """ + some data + with line breaks + + """.trimIndent() + fieldData(data = data) + } + result shouldBe "^FDsome data\nwith line breaks\n\n" + } + it("outputs correct command using string") { + val result = k2zpl { + fieldData(data = "some data\nwith line breaks\n") + } + result shouldBe "^FDsome data\nwith line breaks\n\n" + } + + } + context("replaceNewLines is true") { + it("outputs correct command using raw string") { + val result = k2zpl { + val data = + """ + some data + with line breaks + + """.trimIndent() + fieldData(data = data, replaceNewlines = true) + } + result shouldBe "^FDsome data\\&with line breaks\\&\n" + } + it("outputs correct command using string") { + val result = k2zpl { + fieldData(data = "some data\nwith line breaks\n", replaceNewlines = true) + } + result shouldBe "^FDsome data\\&with line breaks\\&\n" + } + } } }) \ No newline at end of file From cbededbdb5ef48229f737023aa12e1ab28605718 Mon Sep 17 00:00:00 2001 From: Matt King Date: Fri, 20 Sep 2024 10:55:10 +0100 Subject: [PATCH 2/3] [#15] PR Feedback Updates - Make newline replacement non-optional. It is very unlikely we want to allow newline `\n` characters in field data as this breaks ZPL output. - Remove explicit use of `LinkedHashMap` as the `parameters` type in favour of using just `Map`. - Add helper `addParameters` to make explicit that we want a `LinkedHashMap` to be used when adding parameters. This is to ensure key entry order is preserved. --- .../com/sainsburys/k2zpl/command/BarCode.kt | 2 +- .../sainsburys/k2zpl/command/FieldBlock.kt | 4 +- .../com/sainsburys/k2zpl/command/FieldData.kt | 23 +++++----- .../sainsburys/k2zpl/command/FieldOrigin.kt | 10 ++--- .../com/sainsburys/k2zpl/command/Font.kt | 2 +- .../sainsburys/k2zpl/command/GraphicBox.kt | 29 +++++++------ .../sainsburys/k2zpl/command/GraphicField.kt | 2 +- .../com/sainsburys/k2zpl/command/LabelHome.kt | 2 +- .../sainsburys/k2zpl/command/LabelLength.kt | 2 +- .../com/sainsburys/k2zpl/command/MediaMode.kt | 2 +- .../sainsburys/k2zpl/command/PrintWidth.kt | 2 +- .../sainsburys/k2zpl/command/ZplCommand.kt | 9 ++-- .../sainsburys/k2zpl/command/FieldDataTest.kt | 43 +++++-------------- .../k2zpl/command/ZplCommandTest.kt | 27 ++++++------ 14 files changed, 71 insertions(+), 88 deletions(-) diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/BarCode.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/BarCode.kt index f72e45c..412c3d0 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/BarCode.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/BarCode.kt @@ -20,7 +20,7 @@ internal data class BarCode( } override val command: CharSequence = "^B1" - override val parameters: LinkedHashMap = linkedMapOf( + override val parameters: Map = addParameters( "o" to orientation.code, "c" to checkDigit.toString(), "h" to height, diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt index 24e9c8a..4632a77 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldBlock.kt @@ -18,7 +18,7 @@ internal data class FieldBlock( } override val command: CharSequence = "^FB" - override val parameters: LinkedHashMap = linkedMapOf( + override val parameters: Map = addParameters( "w" to width, "l" to maxLines, "s" to lineSpacing, @@ -82,6 +82,6 @@ fun ZplBuilder.fieldBlock( alignment = alignment, hangingIndent = hangingIndent ) - fieldData(data, replaceNewlines = true) + fieldData(data) fieldSeparator() } \ No newline at end of file diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt index 78a3717..cb05247 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldData.kt @@ -2,24 +2,22 @@ package com.sainsburys.k2zpl.command import com.sainsburys.k2zpl.builder.ZplBuilder -internal data class FieldData(val data: String, val replaceNewlines: Boolean = false) : ZplCommand { +internal data class FieldData(val data: String) : ZplCommand { override val command: CharSequence = "^FD" - override val parameters: LinkedHashMap = linkedMapOf("d" to data) + override val parameters: Map = addParameters("d" to data) override fun build(stringBuilder: StringBuilder): StringBuilder { - return with(stringBuilder) { - append(command) - append( - (parameters["d"] as? CharSequence).convertNewlinesIf(replaceNewlines) + return stringBuilder + .append(command) + .append( + (parameters["d"] as? CharSequence).convertNewlines() ) - } } - private fun CharSequence?.convertNewlinesIf(replaceNewlines: Boolean): String { + private fun CharSequence?.convertNewlines(): String { return when { this == null -> "" - replaceNewlines -> toString().replace("\n", "\\&") - else -> toString() + else -> toString().replace("\n", "\\&") } } } @@ -27,8 +25,7 @@ internal data class FieldData(val data: String, val replaceNewlines: Boolean = f /** * Adds field data. * @param data The data to be added to the field. - * @param replaceNewlines set to true to replace \n with ZPL newline character (\&) */ -fun ZplBuilder.fieldData(data: String, replaceNewlines: Boolean = false) { - command(FieldData(data, replaceNewlines)) +fun ZplBuilder.fieldData(data: String) { + command(FieldData(data)) } \ No newline at end of file diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldOrigin.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldOrigin.kt index d22af97..1321442 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/FieldOrigin.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/FieldOrigin.kt @@ -14,11 +14,11 @@ internal data class FieldOrigin( } override val command: CharSequence = "^FO" - override val parameters: LinkedHashMap = buildLinkedMap { - put("x", x) - put("y", y) - put("j", justification) - } + override val parameters: Map = addParameters( + "x" to x, + "y" to y, + "j" to justification + ) } /** diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt index 4a878cb..7fc104d 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt @@ -17,7 +17,7 @@ internal data class Font( } override val command: CharSequence = "^A${font}" - override val parameters: LinkedHashMap = + override val parameters: Map = linkedMapOf("o" to orientation, "h" to height, "w" to width) } diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt index 9aefa42..ec9be03 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt @@ -18,12 +18,13 @@ internal data class GraphicBox( } override val command: CharSequence = "^GB" - override val parameters: LinkedHashMap = - buildLinkedMap { - putAll( - mapOf("w" to width, "h" to height, "t" to thickness, "c" to color.code, "r" to rounding) - ) - } + override val parameters: Map = + linkedMapOf( + "w" to width, + "h" to height, + "t" to thickness, "c" to color.code, + "r" to rounding + ) } /** @@ -41,13 +42,15 @@ fun ZplBuilder.graphicBox( color: ZplLineColor = ZplLineColor.BLACK, rounding: Int = 0 ) { - command(GraphicBox( - width = width, - height = height, - thickness = thickness, - color = color, - rounding = rounding - )) + command( + GraphicBox( + width = width, + height = height, + thickness = thickness, + color = color, + rounding = rounding + ) + ) } /** diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicField.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicField.kt index 4fd33c2..1790078 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicField.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicField.kt @@ -17,7 +17,7 @@ internal data class GraphicField( } override val command: CharSequence = "^GF" - override val parameters: LinkedHashMap = linkedMapOf( + override val parameters: Map = addParameters( "f" to format, "db" to dataBytes, "tb" to totalBytes, diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/LabelHome.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/LabelHome.kt index 30e02c1..2d48acf 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/LabelHome.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/LabelHome.kt @@ -4,7 +4,7 @@ import com.sainsburys.k2zpl.builder.ZplBuilder internal data class LabelHome(val x: Int, val y: Int) : ZplCommand { override val command: CharSequence = "^LH" - override val parameters: LinkedHashMap = linkedMapOf("x" to x, "y" to y) + override val parameters: Map = addParameters("x" to x, "y" to y) } /** diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/LabelLength.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/LabelLength.kt index 685502e..94df7d7 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/LabelLength.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/LabelLength.kt @@ -8,7 +8,7 @@ internal data class LabelLength(val length: Int) : ZplCommand { } override val command: CharSequence = "^LL" - override val parameters: LinkedHashMap = linkedMapOf("l" to length) + override val parameters: Map = addParameters("l" to length) } /** diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt index 1e06fd4..d845a86 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt @@ -10,7 +10,7 @@ internal data class MediaMode( val prePeelSelect: ZplYesNo ) : ZplCommand { override val command: CharSequence = "^MM" - override val parameters: LinkedHashMap = + override val parameters: Map = linkedMapOf("m" to mediaMode, "p" to prePeelSelect) } diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/PrintWidth.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/PrintWidth.kt index f27ec33..4fa69f5 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/PrintWidth.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/PrintWidth.kt @@ -8,7 +8,7 @@ internal data class PrintWidth(val width: Int) : ZplCommand { } override val command: CharSequence = "^PW" - override val parameters: LinkedHashMap = linkedMapOf("w" to width) + override val parameters: Map = addParameters("w" to width) } diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt index c406504..3bfd5f5 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt @@ -2,7 +2,7 @@ package com.sainsburys.k2zpl.command interface ZplCommand { val command: CharSequence - val parameters: LinkedHashMap get() = linkedMapOf() + val parameters: Map get() = linkedMapOf() fun build(stringBuilder: StringBuilder) = stringBuilder.apply { append(command) with(parameters.values.iterator()) { @@ -25,5 +25,8 @@ private fun Iterator.nextNotNull(block: (T) -> Unit) { next()?.let { block(it) } } -internal fun buildLinkedMap(block: LinkedHashMap.() -> Unit) = - linkedMapOf().apply(block) \ No newline at end of file +/** + * A shortcut to adding parameters that helps to enforce use of [LinkedHashMap] + * so that entry order is preserved. + */ +internal fun ZplCommand.addParameters(vararg pairs: Pair) = linkedMapOf(*pairs) diff --git a/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt b/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt index 00a0295..9514cf8 100644 --- a/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt +++ b/src/test/kotlin/com/sainsburys/k2zpl/command/FieldDataTest.kt @@ -23,46 +23,23 @@ class FieldDataTest : DescribeSpec({ } result shouldBe "^FDsome-other-data\n" } - context("replaceNewLines is false") { - it("outputs correct command using raw string") { - val result = k2zpl { - val data = - """ + it("outputs correct command using raw string") { + val result = k2zpl { + val data = + """ some data with line breaks """.trimIndent() - fieldData(data = data) - } - result shouldBe "^FDsome data\nwith line breaks\n\n" - } - it("outputs correct command using string") { - val result = k2zpl { - fieldData(data = "some data\nwith line breaks\n") - } - result shouldBe "^FDsome data\nwith line breaks\n\n" + fieldData(data = data) } - + result shouldBe "^FDsome data\\&with line breaks\\&\n" } - context("replaceNewLines is true") { - it("outputs correct command using raw string") { - val result = k2zpl { - val data = - """ - some data - with line breaks - - """.trimIndent() - fieldData(data = data, replaceNewlines = true) - } - result shouldBe "^FDsome data\\&with line breaks\\&\n" - } - it("outputs correct command using string") { - val result = k2zpl { - fieldData(data = "some data\nwith line breaks\n", replaceNewlines = true) - } - result shouldBe "^FDsome data\\&with line breaks\\&\n" + it("outputs correct command using string") { + val result = k2zpl { + fieldData(data = "some data\nwith line breaks\n") } + result shouldBe "^FDsome data\\&with line breaks\\&\n" } } }) \ No newline at end of file diff --git a/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt b/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt index 6a15748..8e8f80d 100644 --- a/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt +++ b/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt @@ -33,28 +33,31 @@ class ZplCommandWithoutParameters : ZplCommand { class ZplCommandWithOneParameter : ZplCommand { override val command = "^ZCP" - override val parameters: LinkedHashMap = buildLinkedMap { - putAll(mapOf("param-one" to "value-one")) - } + override val parameters: Map = linkedMapOf( + "param-one" to "value-one" + ) } class ZplCommandWithMultipleParameters : ZplCommand { override val command = "^ZCPS" - override val parameters: LinkedHashMap = buildLinkedMap { - putAll(mapOf("param-one" to "value-one", "param-two" to "value-two")) - } + override val parameters: Map = linkedMapOf( + "param-one" to "value-one", + "param-two" to "value-two" + ) } class ZplCommandWitNullFirstParameter : ZplCommand { override val command = "^ZCPN" - override val parameters: LinkedHashMap = buildLinkedMap { - putAll(mapOf("param-one" to null, "param-two" to "value-two")) - } + override val parameters: Map = linkedMapOf( + "param-one" to null, + "param-two" to "value-two" + ) } class ZplCommandWitNullSecondParameter : ZplCommand { override val command = "^ZCPNS" - override val parameters: LinkedHashMap = buildLinkedMap { - putAll(mapOf("param-one" to "value-one", "param-two" to null)) - } + override val parameters: Map = linkedMapOf( + "param-one" to "value-one", + "param-two" to null + ) } \ No newline at end of file From 99e83b59d101e644a16fa2aa27d31eb9df6495a0 Mon Sep 17 00:00:00 2001 From: Matt King Date: Fri, 20 Sep 2024 10:59:03 +0100 Subject: [PATCH 3/3] [#15] Use `addParameters` in tests as well, and update missed usages. --- src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt | 2 +- .../kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt | 2 +- src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt | 2 +- .../kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt | 2 +- .../kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt index 7fc104d..11e6708 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/Font.kt @@ -18,7 +18,7 @@ internal data class Font( override val command: CharSequence = "^A${font}" override val parameters: Map = - linkedMapOf("o" to orientation, "h" to height, "w" to width) + addParameters("o" to orientation, "h" to height, "w" to width) } diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt index ec9be03..092318c 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/GraphicBox.kt @@ -19,7 +19,7 @@ internal data class GraphicBox( override val command: CharSequence = "^GB" override val parameters: Map = - linkedMapOf( + addParameters( "w" to width, "h" to height, "t" to thickness, "c" to color.code, diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt index d845a86..15d7e4d 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/MediaMode.kt @@ -11,7 +11,7 @@ internal data class MediaMode( ) : ZplCommand { override val command: CharSequence = "^MM" override val parameters: Map = - linkedMapOf("m" to mediaMode, "p" to prePeelSelect) + addParameters("m" to mediaMode, "p" to prePeelSelect) } /** diff --git a/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt b/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt index 3bfd5f5..ec45921 100644 --- a/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt +++ b/src/main/kotlin/com/sainsburys/k2zpl/command/ZplCommand.kt @@ -2,7 +2,7 @@ package com.sainsburys.k2zpl.command interface ZplCommand { val command: CharSequence - val parameters: Map get() = linkedMapOf() + val parameters: Map get() = addParameters() fun build(stringBuilder: StringBuilder) = stringBuilder.apply { append(command) with(parameters.values.iterator()) { diff --git a/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt b/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt index 8e8f80d..0046bb5 100644 --- a/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt +++ b/src/test/kotlin/com/sainsburys/k2zpl/command/ZplCommandTest.kt @@ -33,14 +33,14 @@ class ZplCommandWithoutParameters : ZplCommand { class ZplCommandWithOneParameter : ZplCommand { override val command = "^ZCP" - override val parameters: Map = linkedMapOf( + override val parameters: Map = addParameters( "param-one" to "value-one" ) } class ZplCommandWithMultipleParameters : ZplCommand { override val command = "^ZCPS" - override val parameters: Map = linkedMapOf( + override val parameters: Map = addParameters( "param-one" to "value-one", "param-two" to "value-two" ) @@ -48,7 +48,7 @@ class ZplCommandWithMultipleParameters : ZplCommand { class ZplCommandWitNullFirstParameter : ZplCommand { override val command = "^ZCPN" - override val parameters: Map = linkedMapOf( + override val parameters: Map = addParameters( "param-one" to null, "param-two" to "value-two" ) @@ -56,7 +56,7 @@ class ZplCommandWitNullFirstParameter : ZplCommand { class ZplCommandWitNullSecondParameter : ZplCommand { override val command = "^ZCPNS" - override val parameters: Map = linkedMapOf( + override val parameters: Map = addParameters( "param-one" to "value-one", "param-two" to null )