fix npe formatting offer volume with negative market rate

This commit is contained in:
woodser 2023-05-24 10:02:40 -04:00
parent 1c172edb32
commit 8b735d17b7
2 changed files with 19 additions and 16 deletions

View File

@ -1221,6 +1221,9 @@ public abstract class MutableOfferViewModel<M extends MutableOfferDataModel> ext
} }
void updateButtonDisableState() { void updateButtonDisableState() {
dataModel.calculateVolume();
dataModel.calculateTotalToPay();
boolean inputDataValid = isXmrInputValid(amount.get()).isValid && boolean inputDataValid = isXmrInputValid(amount.get()).isValid &&
isXmrInputValid(minAmount.get()).isValid && isXmrInputValid(minAmount.get()).isValid &&
isPriceInputValid(price.get()).isValid && isPriceInputValid(price.get()).isValid &&

View File

@ -17,10 +17,10 @@
package haveno.desktop.main.settings.preferences; package haveno.desktop.main.settings.preferences;
import haveno.core.support.dispute.arbitration.arbitrator.Arbitrator;
import haveno.core.support.dispute.arbitration.arbitrator.ArbitratorManager;
import haveno.core.support.dispute.mediation.mediator.Mediator; import haveno.core.support.dispute.mediation.mediator.Mediator;
import haveno.core.support.dispute.mediation.mediator.MediatorManager; import haveno.core.support.dispute.mediation.mediator.MediatorManager;
import haveno.core.support.dispute.refund.refundagent.RefundAgent;
import haveno.core.support.dispute.refund.refundagent.RefundAgentManager;
import haveno.core.user.Preferences; import haveno.core.user.Preferences;
import haveno.desktop.maker.PreferenceMakers; import haveno.desktop.maker.PreferenceMakers;
import haveno.network.p2p.NodeAddress; import haveno.network.p2p.NodeAddress;
@ -40,9 +40,9 @@ public class PreferencesViewModelTest {
@Test @Test
public void getArbitrationLanguages() { public void getArbitrationLanguages() {
RefundAgentManager refundAgentManager = mock(RefundAgentManager.class); ArbitratorManager arbitratorAgentManager = mock(ArbitratorManager.class);
final ObservableMap<NodeAddress, RefundAgent> refundAgents = FXCollections.observableHashMap(); final ObservableMap<NodeAddress, Arbitrator> arbitrators = FXCollections.observableHashMap();
ArrayList<String> languagesOne = new ArrayList<>() {{ ArrayList<String> languagesOne = new ArrayList<>() {{
add("en"); add("en");
@ -54,20 +54,20 @@ public class PreferencesViewModelTest {
add("es"); add("es");
}}; }};
RefundAgent one = new RefundAgent(new NodeAddress("refundAgent:1"), null, languagesOne, 0L, Arbitrator one = new Arbitrator(new NodeAddress("refundAgent:1"), null, languagesOne, 0L,
null, null, null, null, null); null, null, null, null, null);
RefundAgent two = new RefundAgent(new NodeAddress("refundAgent:2"), null, languagesTwo, 0L, Arbitrator two = new Arbitrator(new NodeAddress("refundAgent:2"), null, languagesTwo, 0L,
null, null, null, null, null); null, null, null, null, null);
refundAgents.put(one.getNodeAddress(), one); arbitrators.put(one.getNodeAddress(), one);
refundAgents.put(two.getNodeAddress(), two); arbitrators.put(two.getNodeAddress(), two);
Preferences preferences = PreferenceMakers.empty; Preferences preferences = PreferenceMakers.empty;
when(refundAgentManager.getObservableMap()).thenReturn(refundAgents); when(arbitratorAgentManager.getObservableMap()).thenReturn(arbitrators);
PreferencesViewModel model = new PreferencesViewModel(preferences, refundAgentManager, null); PreferencesViewModel model = new PreferencesViewModel(preferences, arbitratorAgentManager, null);
assertEquals("English, Deutsch, español", model.getArbitrationLanguages()); assertEquals("English, Deutsch, español", model.getArbitrationLanguages());
} }
@ -111,13 +111,13 @@ public class PreferencesViewModelTest {
public void needsSupportLanguageWarning_forNotSupportedLanguageInArbitration() { public void needsSupportLanguageWarning_forNotSupportedLanguageInArbitration() {
MediatorManager mediationManager = mock(MediatorManager.class); MediatorManager mediationManager = mock(MediatorManager.class);
RefundAgentManager refundAgentManager = mock(RefundAgentManager.class); ArbitratorManager arbitratorManager = mock(ArbitratorManager.class);
Preferences preferences = PreferenceMakers.empty; Preferences preferences = PreferenceMakers.empty;
when(refundAgentManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(false); when(arbitratorManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(false);
PreferencesViewModel model = new PreferencesViewModel(preferences, refundAgentManager, mediationManager); PreferencesViewModel model = new PreferencesViewModel(preferences, arbitratorManager, mediationManager);
assertTrue(model.needsSupportLanguageWarning()); assertTrue(model.needsSupportLanguageWarning());
} }
@ -126,14 +126,14 @@ public class PreferencesViewModelTest {
public void needsSupportLanguageWarning_forNotSupportedLanguageInMediation() { public void needsSupportLanguageWarning_forNotSupportedLanguageInMediation() {
MediatorManager mediationManager = mock(MediatorManager.class); MediatorManager mediationManager = mock(MediatorManager.class);
RefundAgentManager refundAgentManager = mock(RefundAgentManager.class); ArbitratorManager arbitratorManager = mock(ArbitratorManager.class);
Preferences preferences = PreferenceMakers.empty; Preferences preferences = PreferenceMakers.empty;
when(refundAgentManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(true); when(arbitratorManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(true);
when(mediationManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(false); when(mediationManager.isAgentAvailableForLanguage(preferences.getUserLanguage())).thenReturn(false);
PreferencesViewModel model = new PreferencesViewModel(preferences, refundAgentManager, mediationManager); PreferencesViewModel model = new PreferencesViewModel(preferences, arbitratorManager, mediationManager);
assertTrue(model.needsSupportLanguageWarning()); assertTrue(model.needsSupportLanguageWarning());
} }