mirror of
https://github.com/konsoletyper/teavm.git
synced 2024-11-27 01:30:35 +08:00
Fix Boolean.getBoolean(String). Fix various minor issues with system properties
See #306
This commit is contained in:
parent
0b985b95d1
commit
daf0f03634
@ -87,7 +87,8 @@ public class TBoolean extends TObject implements TSerializable, TComparable<TBoo
|
||||
return obj instanceof TBoolean && ((TBoolean) obj).value == value;
|
||||
}
|
||||
|
||||
public boolean getBoolean(TString key) {
|
||||
return valueOf(TString.wrap(TSystem.getProperty(key.toString()))).booleanValue();
|
||||
public static boolean getBoolean(TString key) {
|
||||
String stringValue = key != null ? TSystem.getProperty((String) (Object) key) : null;
|
||||
return stringValue != null && valueOf(TString.wrap(stringValue)).booleanValue();
|
||||
}
|
||||
}
|
||||
|
@ -172,8 +172,12 @@ public class TInteger extends TNumber implements TComparable<TInteger> {
|
||||
}
|
||||
|
||||
public static TInteger getInteger(TString nm, TInteger val) {
|
||||
TString result = TString.wrap(TSystem.getProperty(nm.toString()));
|
||||
return result != null ? TInteger.valueOf(result) : val;
|
||||
TString result = nm != null ? TString.wrap(TSystem.getProperty(nm.toString())) : null;
|
||||
try {
|
||||
return result != null ? TInteger.valueOf(result) : val;
|
||||
} catch (NumberFormatException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static TInteger decode(TString nm) throws TNumberFormatException {
|
||||
|
@ -225,8 +225,12 @@ public class TLong extends TNumber implements TComparable<TLong> {
|
||||
}
|
||||
|
||||
public static TLong getLong(TString nm, TLong val) {
|
||||
TString result = TString.wrap(TSystem.getProperty(nm.toString()));
|
||||
return result != null ? TLong.valueOf(result) : val;
|
||||
TString result = nm != null ? TString.wrap(TSystem.getProperty(nm.toString())) : null;
|
||||
try {
|
||||
return result != null ? TLong.valueOf(result) : val;
|
||||
} catch (NumberFormatException e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static long highestOneBit(long i) {
|
||||
|
@ -16,6 +16,8 @@
|
||||
package org.teavm.classlib.java.lang;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.teavm.junit.TeaVMTestRunner;
|
||||
@ -28,4 +30,15 @@ public class BooleanTest {
|
||||
assertEquals(false, new Boolean("False"));
|
||||
assertEquals(false, new Boolean("True15"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFromSystemProperty() {
|
||||
System.setProperty("test.foo", "true");
|
||||
System.setProperty("test.bar", "false");
|
||||
|
||||
assertTrue(Boolean.getBoolean("test.foo"));
|
||||
assertFalse(Boolean.getBoolean("test.bar"));
|
||||
assertFalse(Boolean.getBoolean("test.baz"));
|
||||
assertFalse(Boolean.getBoolean(null));
|
||||
}
|
||||
}
|
||||
|
@ -16,6 +16,7 @@
|
||||
package org.teavm.classlib.java.lang;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@ -137,4 +138,16 @@ public class IntegerTest {
|
||||
assertTrue(Integer.compare(Integer.MAX_VALUE, Integer.MIN_VALUE) > 0);
|
||||
assertTrue(Integer.compare(Integer.MIN_VALUE, Integer.MAX_VALUE) < 0);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getFromSystemProperty() {
|
||||
System.setProperty("test.foo", "23");
|
||||
System.setProperty("test.bar", "q");
|
||||
|
||||
assertEquals((Object) 23, Integer.getInteger("test.foo"));
|
||||
assertNull(Integer.getInteger("test.bar"));
|
||||
assertNull(Integer.getInteger("test.baz"));
|
||||
assertNull(Integer.getInteger(null));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user