public class com.google.common.collect.testing.testers.MapPutIfAbsentTester extends com.google.common.collect.testing.AbstractMapTester
{
public void <init>()
{
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
specialinvoke v.<com.google.common.collect.testing.AbstractMapTester: void <init>()>();
return;
}
public void testPutIfAbsent_supportedAbsent()
{
java.util.Map v;
java.lang.Object v, v, v, v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k3()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v3()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void assertNull(java.lang.String,java.lang.Object)>("putIfAbsent(notPresent, value) should return null", v);
v = newarray (java.util.Map$Entry)[1];
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object e3()>();
v[0] = v;
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectAdded(java.lang.Object[])>(v);
return;
}
public void testPutIfAbsent_supportedPresent()
{
java.util.Map v;
java.lang.Object v, v, v, v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v3()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("putIfAbsent(present, value) should return existing value", v, v);
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
return;
}
public void testPutIfAbsent_unsupportedAbsent()
{
java.lang.UnsupportedOperationException v;
java.util.Map v;
java.lang.Object v, v, v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
java.util.Map$Entry[] v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k3()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v3()>();
interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void fail(java.lang.String)>("putIfAbsent(notPresent, value) should throw");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
v = newarray (java.util.Map$Entry)[1];
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object e3()>();
v[0] = v;
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectMissing(java.util.Map$Entry[])>(v);
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testPutIfAbsent_unsupportedPresentExistingValue()
{
java.lang.UnsupportedOperationException v;
java.util.Map v;
java.lang.Object v, v, v, v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v0()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void assertEquals(java.lang.String,java.lang.Object,java.lang.Object)>("putIfAbsent(present, existingValue) should return present or throw", v, v);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testPutIfAbsent_unsupportedPresentDifferentValue()
{
java.lang.UnsupportedOperationException v;
java.util.Map v;
java.lang.Object v, v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k0()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v3()>();
interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
return;
catch java.lang.UnsupportedOperationException from label to label with label;
}
public void testPutIfAbsent_nullKeyUnsupported()
{
java.util.Map v;
java.lang.Object v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
java.lang.NullPointerException v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object v3()>();
interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(null, v);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void fail(java.lang.String)>("putIfAbsent(null, value) should throw");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectNullKeyMissingWhenNullKeysUnsupported(java.lang.String)>("Should not contain null key after unsupported putIfAbsent(null, value)");
return;
catch java.lang.NullPointerException from label to label with label;
}
public void testPutIfAbsent_nullValueUnsupported()
{
java.util.Map v;
java.lang.Object v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
java.lang.NullPointerException v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k3()>();
interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, null);
staticinvoke <com.google.common.collect.testing.testers.MapPutIfAbsentTester: void fail(java.lang.String)>("putIfAbsent(key, null) should throw");
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectNullValueMissingWhenNullValuesUnsupported(java.lang.String)>("Should not contain null value after unsupported put(key, null)");
return;
catch java.lang.NullPointerException from label to label with label;
}
public void testPutIfAbsent_putWithNullValueUnsupported()
{
java.util.Map v;
java.lang.Object v;
com.google.common.collect.testing.testers.MapPutIfAbsentTester v;
java.lang.NullPointerException v;
v := @this: com.google.common.collect.testing.testers.MapPutIfAbsentTester;
label:
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.util.Map getMap()>();
v = virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: java.lang.Object k0()>();
interfaceinvoke v.<java.util.Map: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, null);
label:
goto label;
label:
v := @caughtexception;
label:
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectUnchanged()>();
virtualinvoke v.<com.google.common.collect.testing.testers.MapPutIfAbsentTester: void expectNullValueMissingWhenNullValuesUnsupported(java.lang.String)>("Should not contain null after unsupported putIfAbsent(present, null)");
return;
catch java.lang.NullPointerException from label to label with label;
}
}