public class com.google.common.collect.testing.testers.MapComputeIfAbsentTester extends com.google.common.collect.testing.AbstractMapTester
{
public void <init>()
{
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
specialinvoke v.<com.google.common.collect.testing.AbstractMapTester: void <init>()>();
return;
}
public void testComputeIfAbsent_supportedAbsent()
{
java.util.function.Function v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v, v, v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object v3()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k3()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_supportedAbsent_0__33: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("computeIfAbsent(notPresent, function) should return new value", v, v);
v = newarray (java.util.Map$Entry)[1];
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object e3()>();
v[0] = v;
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectAdded(java.lang.Object[])>(v);
return;
}
public void testComputeIfAbsent_supportedPresent()
{
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v, v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object v0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k0()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_supportedPresent_1__34: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("computeIfAbsent(present, function) should return existing value", v, v);
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
}
public void testComputeIfAbsent_functionReturnsNullNotInserted()
{
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k3()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_functionReturnsNullNotInserted_2__35: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertNull(java.lang.String,java.lang.Object)>("computeIfAbsent(absent, returnsNull) should return null", v);
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
}
public void testComputeIfAbsent_nullTreatedAsAbsent()
{
java.util.Map$Entry v;
java.util.function.Function v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v, v, v, v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void initMapWithNullValue()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object getValueForNullKey()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object getKeyForNullValue()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_nullTreatedAsAbsent_3__36: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("computeIfAbsent(presentAssignedToNull, function) should return newValue", v, v);
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object getKeyForNullValue()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object getValueForNullKey()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map$Entry entry(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectReplacement(java.util.Map$Entry)>(v);
return;
}
public void testComputeIfAbsent_nullKeySupported()
{
java.util.Map$Entry v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v;
java.util.Map$Entry[] v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_nullKeySupported_4__37: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(null, v);
v = newarray (java.util.Map$Entry)[1];
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object v3()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map$Entry entry(java.lang.Object,java.lang.Object)>(null, v);
v[0] = v;
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectAdded(java.lang.Object[])>(v);
return;
}
public void testComputeIfAbsent_functionThrows()
{
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester$ExpectedException v;
java.util.Map v;
java.lang.Object v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k3()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_functionThrows_5__38: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void fail(java.lang.String)>("Expected ExpectedException");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
catch com.google.common.collect.testing.testers.MapComputeIfAbsentTester$ExpectedException from label to label with label;
}
public void testComputeIfAbsent_unsupportedAbsent()
{
java.lang.UnsupportedOperationException v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k3()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_unsupportedAbsent_6__39: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void fail(java.lang.String)>("computeIfAbsent(notPresent, function) should throw");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testComputeIfAbsent_unsupportedPresentExistingValue()
{
java.lang.UnsupportedOperationException v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v, v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object v0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k0()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_unsupportedPresentExistingValue_7__40: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("computeIfAbsent(present, returnsCurrentValue) should return present or throw", v, v);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testComputeIfAbsent_unsupportedPresentDifferentValue()
{
java.lang.UnsupportedOperationException v;
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.lang.Object v, v, v;
java.util.function.Function v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object v0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.lang.Object k0()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_unsupportedPresentDifferentValue_8__41: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("computeIfAbsent(present, returnsDifferentValue) should return present or throw", v, v);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testComputeIfAbsent_nullKeyUnsupported()
{
com.google.common.collect.testing.testers.MapComputeIfAbsentTester v;
java.util.Map v;
java.util.function.Function v;
java.lang.NullPointerException v;
v := @this: com.google.common.collect.testing.testers.MapComputeIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: java.util.Map getMap()>();
v = staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester$lambda_testComputeIfAbsent_nullKeyUnsupported_9__42: java.util.function.Function bootstrap$(com.google.common.collect.testing.testers.MapComputeIfAbsentTester)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(null, v);
staticinvoke <com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void fail(java.lang.String)>("computeIfAbsent(null, function) should throw");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectUnchanged()>();
virtualinvoke v.<com.google.common.collect.testing.testers.MapComputeIfAbsentTester: void expectNullKeyMissingWhenNullKeysUnsupported(java.lang.String)>("Should not contain null key after unsupported computeIfAbsent(null, function)");
return;
catch java.lang.NullPointerException from label to label with label;
}
}