Skip to content

Commit 0ee16c8

Browse files
authored
#65 Fix default record id prefix being null
1 parent f9fbb49 commit 0ee16c8

File tree

3 files changed

+62
-11
lines changed

3 files changed

+62
-11
lines changed

src/main/scala/za/co/absa/standardization/config/MetadataColumnsConfig.scala

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ package za.co.absa.standardization.config
1919
import za.co.absa.standardization.RecordIdGeneration
2020

2121
trait MetadataColumnsConfig {
22-
val addColumns: Boolean
23-
val prefix: String
24-
val recordIdStrategy: RecordIdGeneration.IdType
22+
def addColumns: Boolean
23+
def prefix: String
24+
def recordIdStrategy: RecordIdGeneration.IdType
2525

26-
val infoDateColumn = prefix + "_info_date"
27-
val infoDateColumnString = s"${infoDateColumn}_string"
28-
val reportDateFormat = "yyyy-MM-dd"
29-
val infoVersionColumn = prefix + "_info_version"
30-
val recordId = prefix + "_record_id"
26+
def reportDateFormat = "yyyy-MM-dd"
27+
28+
def infoDateColumn = prefix + "_info_date"
29+
def infoDateColumnString = s"${infoDateColumn}_string"
30+
def infoVersionColumn = prefix + "_info_version"
31+
def recordId = prefix + "_record_id"
3132
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright 2021 ABSA Group Limited
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package za.co.absa.standardization.config
18+
19+
import org.scalatest.funsuite.AnyFunSuiteLike
20+
import za.co.absa.standardization.RecordIdGeneration
21+
import za.co.absa.standardization.types.CommonTypeDefaults
22+
23+
class MetadataColumnsConfigTest extends AnyFunSuiteLike {
24+
25+
test("Test DefaultStandardizationConfig") {
26+
val conf = DefaultStandardizationConfig
27+
assert(conf.errorColumn == "errCol")
28+
assert(!conf.failOnInputNotPerSchema)
29+
assert(conf.timezone == "UTC")
30+
31+
assert(conf.errorCodes.castError == "E00000")
32+
assert(conf.errorCodes.nullError == "E00002")
33+
assert(conf.errorCodes.typeError == "E00006")
34+
assert(conf.errorCodes.schemaError == "E00007")
35+
36+
assert(conf.metadataColumns.addColumns)
37+
assert(conf.metadataColumns.prefix == "standardization")
38+
assert(conf.metadataColumns.recordIdStrategy == RecordIdGeneration.IdType.TrueUuids)
39+
assert(conf.metadataColumns.reportDateFormat == "yyyy-MM-dd")
40+
assert(conf.metadataColumns.infoDateColumn == "standardization_info_date")
41+
assert(conf.metadataColumns.infoDateColumnString == "standardization_info_date_string")
42+
assert(conf.metadataColumns.infoVersionColumn == "standardization_info_version")
43+
assert(conf.metadataColumns.recordId == "standardization_record_id")
44+
45+
assert(conf.typeDefaults == CommonTypeDefaults)
46+
}
47+
48+
}

src/test/scala/za/co/absa/standardization/interpreter/StandardizationInterpreterSuite.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import za.co.absa.spark.commons.implicits.DataFrameImplicits.DataFrameEnhancemen
2323
import za.co.absa.spark.commons.test.SparkTestBase
2424
import za.co.absa.spark.commons.utils.JsonUtils
2525
import za.co.absa.standardization.RecordIdGeneration.IdType.NoId
26-
import za.co.absa.standardization.config.{BasicMetadataColumnsConfig, BasicStandardizationConfig, ErrorCodesConfig}
26+
import za.co.absa.standardization.config.{BasicMetadataColumnsConfig, BasicStandardizationConfig, DefaultStandardizationConfig, ErrorCodesConfig}
2727
import za.co.absa.standardization.types.{CommonTypeDefaults, TypeDefaults}
2828
import za.co.absa.standardization.udf.UDFLibrary
2929
import za.co.absa.standardization._
@@ -133,8 +133,9 @@ class StandardizationInterpreterSuite extends AnyFunSuite with SparkTestBase wit
133133
Seq(
134134
StructField("yourRef", StringType, nullable = false))), nullable = false)))
135135

136-
val standardizedDF = Standardization.standardize(orig, schema, stdConfig)
136+
val standardizedDF = Standardization.standardize(orig, schema)
137137

138+
assert(standardizedDF.schema.treeString.contains("standardization_record_id"))
138139
assertResult(exp)(standardizedDF.as[MyWrapperStd].collect().toList)
139140
}
140141

@@ -170,8 +171,9 @@ class StandardizationInterpreterSuite extends AnyFunSuite with SparkTestBase wit
170171
StructField("errCol",
171172
ArrayType(
172173
ErrorMessage.errorColSchema, containsNull = false)))
174+
.add(StructField("standardization_record_id", StringType, nullable = false))
173175

174-
val standardizedDF = Standardization.standardize(sourceDF, stdExpectedSchema, stdConfig)
176+
val standardizedDF = Standardization.standardize(sourceDF, stdExpectedSchema)
175177

176178
logger.debug(standardizedDF.schema.treeString)
177179
logger.debug(expectedSchema.treeString)

0 commit comments

Comments
 (0)