/* * Copyright (c) 2013-2015 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.adoptopenjdk.jitwatch.model.bytecode.InnerClassRelationship; import org.junit.Test; public class TestInnerClassRelationship { @Test public void testInnerClassRelationshipParse() { String line1 = "#10= #8 of #32; //Inner1=class TestInner$Inner1 of class TestInner"; String line2 = "#12= #6 of #8; //Inner2=class TestInner$Inner1$Inner2 of class TestInner$Inner1"; String line3 = "As if by magic, the shopkeeper appeared."; InnerClassRelationship icr1 = InnerClassRelationship.parse(line1); InnerClassRelationship icr2 = InnerClassRelationship.parse(line2); InnerClassRelationship icr3 = InnerClassRelationship.parse(line3); assertEquals("TestInner", icr1.getParentClass()); assertEquals("TestInner$Inner1", icr1.getChildClass()); assertEquals("TestInner$Inner1", icr2.getParentClass()); assertEquals("TestInner$Inner1$Inner2", icr2.getChildClass()); assertNull(icr3); } @Test public void testInnerClassNameFinder() { String line1 = "public #13= #6 of #10; //Cow=class PolymorphismTest$Cow of class PolymorphismTest"; String line2 = "public #15= #4 of #10; //Cat=class PolymorphismTest$Cat of class PolymorphismTest"; String line3 = "public #16= #2 of #10; //Dog=class PolymorphismTest$Dog of class PolymorphismTest"; String line4 = "public static #18= #17 of #10; //Animal=class PolymorphismTest$Animal of class PolymorphismTest"; String line5 = "foo"; assertEquals("PolymorphismTest$Cow", InnerClassRelationship.parse(line1).getChildClass()); assertEquals("PolymorphismTest$Cat", InnerClassRelationship.parse(line2).getChildClass()); assertEquals("PolymorphismTest$Dog", InnerClassRelationship.parse(line3).getChildClass()); assertEquals("PolymorphismTest$Animal", InnerClassRelationship.parse(line4).getChildClass()); assertNull(InnerClassRelationship.parse(line5)); } }