Console should get much smarter around compatibility with older units #6845

only:refactoring
This commit is contained in:
Andrey 2024-09-11 10:56:49 -04:00
parent 33281f23f8
commit 2a71cd9c1b
5 changed files with 37 additions and 5 deletions

View File

@ -11,7 +11,6 @@ import com.opensr5.io.DataListener;
import com.rusefi.ConfigurationImageDiff;
import com.rusefi.NamedThreadFactory;
import com.rusefi.config.generated.Integration;
import com.rusefi.core.SignatureHelper;
import com.rusefi.Timeouts;
import com.rusefi.binaryprotocol.test.Bug3923;
import com.rusefi.config.generated.Fields;
@ -76,6 +75,7 @@ public class BinaryProtocol {
private final BinaryProtocolLogger binaryProtocolLogger;
public static boolean DISABLE_LOCAL_CONFIGURATION_CACHE;
public static IniFileProvider iniFileProvider = new RealIniFileProvider();
public static String findCommand(byte command) {
switch (command) {
@ -181,10 +181,7 @@ public class BinaryProtocol {
} catch (IOException e) {
return "Failed to read signature " + e;
}
String localIniFile = SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(signature));
if (localIniFile == null)
throw new IllegalStateException("Failed to download for " + signature);
iniFile = new IniFileModel().readIniFile(localIniFile);
iniFile = iniFileProvider.provide(signature);
String errorMessage = validateConfigVersion();
if (errorMessage != null)

View File

@ -0,0 +1,7 @@
package com.rusefi.binaryprotocol;
import com.opensr5.ini.IniFileModel;
public interface IniFileProvider {
IniFileModel provide(String signature);
}

View File

@ -0,0 +1,14 @@
package com.rusefi.binaryprotocol;
import com.opensr5.ini.IniFileModel;
import com.rusefi.core.SignatureHelper;
public class RealIniFileProvider implements IniFileProvider {
@Override
public IniFileModel provide(String signature) {
String localIniFile = SignatureHelper.downloadIfNotAvailable(SignatureHelper.getUrl(signature));
if (localIniFile == null)
throw new IllegalStateException("Failed to download for " + signature);
return new IniFileModel().readIniFile(localIniFile);
}
}

View File

@ -0,0 +1,12 @@
package com.rusefi.proxy;
import com.rusefi.binaryprotocol.IniFileProvider;
import org.mockito.Mockito;
public class MockIniFileProvider {
public static IniFileProvider create() {
IniFileProvider mock = Mockito.mock(IniFileProvider.class);
return mock;
}
}

View File

@ -5,6 +5,7 @@ import com.opensr5.ConfigurationImage;
import com.rusefi.BackendTestHelper;
import com.rusefi.TestHelper;
import com.rusefi.Timeouts;
import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.config.generated.Fields;
import com.rusefi.io.tcp.BinaryProtocolServer;
import com.rusefi.io.tcp.TcpConnector;
@ -25,6 +26,7 @@ public class NetworkConnectorTest {
@BeforeEach
public void setup() throws MalformedURLException {
//BinaryProtocol.iniFileProvider = MockIniFileProvider.create();
BackendTestHelper.commonServerTest();
}