mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Implement equality for ReadableNativeMap
Summary: This diff implements equality for ReadableNativeMap, the underlying implementation relies on the method HashMap.equals() Reviewed By: kathryngray Differential Revision: D14019065 fbshipit-source-id: aeaec22ce1066241ed85f0527f5cd804e3c763dd
This commit is contained in:
committed by
Facebook Github Bot
parent
a8703fe10b
commit
f4536422d6
+74
@@ -21,7 +21,9 @@ import com.facebook.react.bridge.ReadableNativeMap;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.UiThreadUtil;
|
||||
import com.facebook.react.bridge.UnexpectedNativeTypeException;
|
||||
import com.facebook.react.bridge.WritableArray;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.bridge.WritableNativeArray;
|
||||
import com.facebook.react.bridge.WritableNativeMap;
|
||||
import com.facebook.react.modules.appstate.AppStateModule;
|
||||
import com.facebook.react.modules.deviceinfo.DeviceInfoModule;
|
||||
@@ -476,6 +478,78 @@ public class CatalystNativeJSToJavaParametersTestCase extends ReactIntegrationTe
|
||||
assertEquals("newvalue", dest.getString("newkey"));
|
||||
}
|
||||
|
||||
public void testEqualityMapAfterMerge() {
|
||||
mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnMapForMerge1();
|
||||
waitForBridgeAndUIIdle();
|
||||
|
||||
List<ReadableMap> maps = mRecordingTestModule.getMapCalls();
|
||||
assertEquals(1, maps.size());
|
||||
|
||||
WritableMap map1 = new WritableNativeMap();
|
||||
map1.merge(maps.get(0));
|
||||
WritableMap map2 = new WritableNativeMap();
|
||||
map2.merge(maps.get(0));
|
||||
|
||||
assertTrue(map1.equals(map2));
|
||||
}
|
||||
|
||||
public void testWritableNativeMapEquals() {
|
||||
WritableMap map1 = new WritableNativeMap();
|
||||
WritableMap map2 = new WritableNativeMap();
|
||||
|
||||
map1.putInt("key1", 123);
|
||||
map2.putInt("key1", 123);
|
||||
map1.putString("key2", "value");
|
||||
map2.putString("key2", "value");
|
||||
|
||||
assertTrue(map1.equals(map2));
|
||||
}
|
||||
|
||||
public void testWritableNativeMapArraysEquals() {
|
||||
WritableMap map1 = new WritableNativeMap();
|
||||
WritableMap map2 = new WritableNativeMap();
|
||||
|
||||
map1.putInt("key1", 123);
|
||||
map2.putInt("key1", 123);
|
||||
map1.putString("key2", "value");
|
||||
map2.putString("key2", "value");
|
||||
WritableArray array1 = new WritableNativeArray();
|
||||
array1.pushInt(321);
|
||||
array1.pushNull();
|
||||
array1.pushString("test");
|
||||
map1.putArray("key3", array1);
|
||||
|
||||
WritableArray array2 = new WritableNativeArray();
|
||||
array1.pushInt(321);
|
||||
array1.pushNull();
|
||||
array1.pushString("test");
|
||||
map2.putArray("key3", array2);
|
||||
|
||||
assertTrue(map1.equals(map2));
|
||||
}
|
||||
|
||||
public void testWritableNativeMapArraysNonEquals() {
|
||||
WritableMap map1 = new WritableNativeMap();
|
||||
WritableMap map2 = new WritableNativeMap();
|
||||
|
||||
map1.putInt("key1", 123);
|
||||
map2.putInt("key1", 123);
|
||||
map1.putString("key2", "value");
|
||||
map2.putString("key2", "value");
|
||||
WritableArray array1 = new WritableNativeArray();
|
||||
array1.pushInt(321);
|
||||
array1.pushNull();
|
||||
array1.pushString("test");
|
||||
map1.putArray("key3", array1);
|
||||
|
||||
WritableArray array2 = new WritableNativeArray();
|
||||
array1.pushNull();
|
||||
array1.pushString("test");
|
||||
map2.putArray("key3", array2);
|
||||
|
||||
assertTrue(map1.equals(map2));
|
||||
}
|
||||
|
||||
public void testMapAccessibleAfterMerge() {
|
||||
mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnMapForMerge1();
|
||||
mCatalystInstance.getJSModule(TestJSToJavaParametersModule.class).returnMapForMerge2();
|
||||
|
||||
Reference in New Issue
Block a user