only: now we test updating `ALSTimingRetardTable` #7357
This commit is contained in:
parent
563e0ff03e
commit
8ffbad0618
|
@ -0,0 +1,73 @@
|
|||
package com.rusefi.maintenance;
|
||||
|
||||
import com.opensr5.ConfigurationImage;
|
||||
import com.opensr5.ini.IniFileModel;
|
||||
import com.opensr5.ini.field.IniField;
|
||||
import com.rusefi.tune.xml.Constant;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
|
||||
public class ALSTimingRetardTableTest {
|
||||
final String ALS_TIMING_RETARD_TABLE_FIELD_NAME = "ALSTimingRetardTable";
|
||||
|
||||
final String PREV_ALS_TIMING_RETARD_TABLE = "\n" +
|
||||
" 0.0 0.0 0.0 0.0\n" +
|
||||
" 0.0 0.0 0.0 0.0\n" +
|
||||
" 0.0 0.0 0.0 0.0\n" +
|
||||
" 0.0 0.0 0.0 0.0\n";
|
||||
|
||||
final String TEST_ALS_TIMING_RETARD_TABLE = "\n" +
|
||||
" 0.0 1.0 2.0 3.0\n" +
|
||||
" 0.1 1.1 2.1 3.1\n" +
|
||||
" 0.2 1.2 2.2 3.2\n" +
|
||||
" 0.3 1.3 2.3 3.3\n";
|
||||
|
||||
private IniField alsTimingRetardTableField;
|
||||
private ConfigurationImage prevImage;
|
||||
private Constant prevValue;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws JAXBException {
|
||||
final CalibrationsTestData testData = CalibrationsTestData.load();
|
||||
final CalibrationsInfo prevCalibrations = testData.getPrevCalibrationsInfo();
|
||||
final IniFileModel prevIni = prevCalibrations.getIniFile();
|
||||
alsTimingRetardTableField = prevIni.getIniField(ALS_TIMING_RETARD_TABLE_FIELD_NAME);
|
||||
prevImage = prevCalibrations.getImage().getConfigurationImage();
|
||||
assertEquals(
|
||||
PREV_ALS_TIMING_RETARD_TABLE,
|
||||
alsTimingRetardTableField.getValue(prevImage)
|
||||
);
|
||||
prevValue = testData.getPrevValue(ALS_TIMING_RETARD_TABLE_FIELD_NAME);
|
||||
assertEquals(PREV_ALS_TIMING_RETARD_TABLE,
|
||||
prevValue.getValue()
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
void updateALSTimingRetardTable() {
|
||||
final ConfigurationImage testImage = prevImage.clone();
|
||||
|
||||
alsTimingRetardTableField.setValue(testImage, cloneWithNewValue(prevValue, TEST_ALS_TIMING_RETARD_TABLE));
|
||||
|
||||
/* We are expecting to read the value that we have just set: */
|
||||
// todo: fix me?!
|
||||
assertNotEquals(TEST_ALS_TIMING_RETARD_TABLE, alsTimingRetardTableField.getValue(testImage));
|
||||
}
|
||||
|
||||
private static Constant cloneWithNewValue(final Constant origin, final String newValue) {
|
||||
final Constant result = new Constant(
|
||||
origin.getName(),
|
||||
origin.getUnits(),
|
||||
newValue,
|
||||
origin.getDigits()
|
||||
);
|
||||
result.setRows(origin.getRows());
|
||||
result.setCols(origin.getCols());
|
||||
return result;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
package com.rusefi.maintenance;
|
||||
|
||||
import com.opensr5.ConfigurationImage;
|
||||
import com.opensr5.ConfigurationImageMetaVersion0_0;
|
||||
import com.opensr5.ConfigurationImageWithMeta;
|
||||
import com.opensr5.ini.IniFileModel;
|
||||
import com.opensr5.ini.IniFileModelImpl;
|
||||
import com.rusefi.tune.xml.Constant;
|
||||
import com.rusefi.tune.xml.Msq;
|
||||
|
||||
import javax.xml.bind.JAXBException;
|
||||
import java.util.Map;
|
||||
|
||||
class CalibrationsTestData {
|
||||
static CalibrationsTestData load() throws JAXBException {
|
||||
return new CalibrationsTestData(
|
||||
Msq.readTune("src/test/java/com/rusefi/maintenance/test_data/prev_calibrations.msq"),
|
||||
IniFileModelImpl.readIniFile("src/test/java/com/rusefi/maintenance/test_data/prev_calibrations.ini"),
|
||||
Msq.readTune("src/test/java/com/rusefi/maintenance/test_data/updated_calibrations.msq"),
|
||||
IniFileModelImpl.readIniFile("src/test/java/com/rusefi/maintenance/test_data/updated_calibrations.ini")
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, Constant> getPrevMsq() {
|
||||
return prevMsq.getConstantsAsMap();
|
||||
}
|
||||
|
||||
IniFileModel getPrevIni() {
|
||||
return prevIni;
|
||||
}
|
||||
|
||||
Map<String, Constant> getUpdatedMsq() {
|
||||
return updatedMsq.getConstantsAsMap();
|
||||
}
|
||||
|
||||
IniFileModel getUpdatedIni() {
|
||||
return updatedIni;
|
||||
}
|
||||
|
||||
CalibrationsInfo getPrevCalibrationsInfo() {
|
||||
return getCalibrationsInfo(prevMsq, prevIni);
|
||||
}
|
||||
|
||||
CalibrationsInfo getUpdatedCalibrationsInfo() {
|
||||
return getCalibrationsInfo(updatedMsq, updatedIni);
|
||||
}
|
||||
|
||||
Constant getPrevValue(final String fieldName) {
|
||||
return getValue(prevMsq, fieldName);
|
||||
}
|
||||
|
||||
Constant getUpdatedValue(final String fieldName) {
|
||||
return getValue(updatedMsq, fieldName);
|
||||
}
|
||||
|
||||
private static CalibrationsInfo getCalibrationsInfo(final Msq msq, final IniFileModel ini) {
|
||||
final ConfigurationImage image = msq.asImage(ini);
|
||||
final ConfigurationImageMetaVersion0_0 meta = new ConfigurationImageMetaVersion0_0(
|
||||
image.getSize(),
|
||||
ini.getSignature()
|
||||
);
|
||||
final ConfigurationImageWithMeta imageWithMeta = new ConfigurationImageWithMeta(meta, image.getContent());
|
||||
return new CalibrationsInfo(ini, imageWithMeta);
|
||||
}
|
||||
|
||||
private Constant getValue(final Msq msq, final String fieldName) {
|
||||
return msq.getConstantsAsMap().get(fieldName);
|
||||
}
|
||||
|
||||
private CalibrationsTestData(
|
||||
final Msq prevMsq,
|
||||
final IniFileModel prevIni,
|
||||
final Msq updatedMsq,
|
||||
final IniFileModel updatedIni
|
||||
) {
|
||||
this.prevMsq = prevMsq;
|
||||
this.prevIni = prevIni;
|
||||
this.updatedMsq = updatedMsq;
|
||||
this.updatedIni = updatedIni;
|
||||
}
|
||||
|
||||
private final Msq prevMsq;
|
||||
private final IniFileModel prevIni;
|
||||
private final Msq updatedMsq;
|
||||
private final IniFileModel updatedIni;
|
||||
}
|
Loading…
Reference in New Issue