Skip to content

Commit 234bf58

Browse files
Merge pull request #1023 from ie3-institute/jb/#1021-rawgridsource-testing
Enhance CsvRawGridSource testing
2 parents 6edd3e6 + 30c3f52 commit 234bf58

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
- Validation for `EvcsInput` [#1000](https://github.com/ie3-institute/PowerSystemDataModel/issues/1000)
1414
- Scaling method in system participant copy builders [#1011](https://github.com/ie3-institute/PowerSystemDataModel/issues/1011)
1515
- Added separate field for maximum power limit for DC to evtype [#876](https://github.com/ie3-institute/PowerSystemDataModel/issues/876)
16+
- Added test for invalid input data in `CsvRawGridSource` [#1021](https://github.com/ie3-institute/PowerSystemDataModel/issues/1021)
1617

1718
### Fixed
1819
- Fixed Couchbase integration tests that randomly failed [#755](https://github.com/ie3-institute/PowerSystemDataModel/issues/755)

src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvRawGridSourceTest.groovy

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import edu.ie3.datamodel.io.factory.input.Transformer3WInputEntityData
1414
import edu.ie3.datamodel.io.factory.input.TypedConnectorInputEntityData
1515
import edu.ie3.datamodel.io.source.RawGridSource
1616
import edu.ie3.datamodel.io.source.TypeSource
17+
import edu.ie3.datamodel.models.input.NodeInput
18+
import edu.ie3.datamodel.models.input.OperatorInput
1719
import edu.ie3.datamodel.models.input.connector.LineInput
1820
import edu.ie3.datamodel.models.input.connector.SwitchInput
1921
import edu.ie3.datamodel.models.input.connector.Transformer3WInput
@@ -589,4 +591,32 @@ class CsvRawGridSourceTest extends Specification implements CsvTestDataMeta {
589591
then: "the optional is empty"
590592
actual.allEntitiesAsList().empty
591593
}
594+
595+
def "A CsvRawGridSource should process invalid input data as expected when requested to provide an instance of RawGridElements"() {
596+
given:
597+
def typeSource = new TypeSource(new CsvDataSource(csvSep, typeFolderPath, fileNamingStrategy))
598+
def rawGridSource =
599+
new RawGridSource(typeSource, new CsvDataSource(csvSep, gridDefaultFolderPath, fileNamingStrategy)) {
600+
@Override
601+
Map<UUID, NodeInput> getNodes() {
602+
return Collections.emptyMap()
603+
}
604+
605+
@Override
606+
Map<UUID, NodeInput> getNodes(Map<UUID, OperatorInput> operators) {
607+
return Collections.emptyMap()
608+
}
609+
}
610+
611+
when:
612+
def rawGridElements = Try.of(() -> rawGridSource.gridData, SourceException)
613+
614+
then:
615+
rawGridElements.failure
616+
rawGridElements.data == Optional.empty()
617+
618+
Exception ex = rawGridElements.exception.get()
619+
ex.class == SourceException
620+
ex.message.startsWith("edu.ie3.datamodel.exceptions.FailureException: 2 exception(s) occurred within \"LineInput\" data, one is: edu.ie3.datamodel.exceptions.FactoryException: edu.ie3.datamodel.exceptions.SourceException: Linked nodeA with UUID 4ca90220-74c2-4369-9afa-a18bf068840d was not found for entity")
621+
}
592622
}

0 commit comments

Comments
 (0)