Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/*
* © 2020. TU Dortmund University,
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
* Research group Distribution grid planning and operation
*/
package edu.ie3.datamodel.io.factory.input;

import edu.ie3.datamodel.io.factory.EntityFactory;
import edu.ie3.datamodel.io.factory.SimpleEntityData;
import edu.ie3.datamodel.models.input.OperatorInput;
import java.util.Collections;
import java.util.List;
import java.util.Set;

public class OperatorInputFactory extends EntityFactory<OperatorInput, SimpleEntityData> {

private static final String ENTITY_UUID = "uuid";
private static final String ENTITY_ID = "id";

public OperatorInputFactory() {
super(OperatorInput.class);
}

@Override
protected List<Set<String>> getFields(SimpleEntityData data) {
Set<String> constructorParams = newSet(ENTITY_UUID, ENTITY_ID);
return Collections.singletonList(constructorParams);
}

@Override
protected OperatorInput buildModel(SimpleEntityData data) {
return new OperatorInput(data.getUUID(ENTITY_UUID), data.getField(ENTITY_ID));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* © 2020. TU Dortmund University,
* Institute of Energy Systems, Energy Efficiency and Energy Economics,
* Research group Distribution grid planning and operation
*/
package edu.ie3.datamodel.io.factory.input

import edu.ie3.datamodel.io.factory.SimpleEntityData
import edu.ie3.datamodel.models.input.OperatorInput
import spock.lang.Specification

class OperatorInputFactoryTest extends Specification {

def "An OperatorInputFactory should contain exactly the expected class for parsing"() {
given:
def inputFactory = new OperatorInputFactory()
def expectedClasses = [OperatorInput]

expect:
inputFactory.classes() == Arrays.asList(expectedClasses.toArray())
}

def "An OperatorInputFactory should parse a valid OperatorInput correctly"() {
given: "a operator input factory and model data"
def inputFactory = new OperatorInputFactory()
Map<String, String> parameter = [
"uuid": "91ec3bcf-1777-4d38-af67-0bf7c9fa73c7",
"id" : "TestOperatorId",
]

def inputClass = OperatorInput

when:
Optional<OperatorInput> input = inputFactory.getEntity(new SimpleEntityData(parameter, inputClass))

then:
input.present
input.get().getClass() == inputClass
((OperatorInput) input.get()).with {
assert uuid == UUID.fromString(parameter["uuid"])
assert id == parameter["id"]
}
}
}