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