Just to answer my own question for the benefit of those who might have a similar question. The answer was limit the test to a single user input interaction. Above I was trying to simulate two things. Interaction to move from one panel screen to a second as well as interaction on the second panel. Limiting the interaction to test just the second half of the user interaction is was allowed FEST to properly recognize the interactions. The resulting code for a passing test in this example was:
def mockClassMap = getClassMap()
panel.plyGen = mockPG
mockPG.getAvailableClass().returns(mockClassMap)
panel.raceValue = 1
panel.genderValue = 2
panel.gPane.mainM.setVisible(false)
panel.gPane.chooseClass.setVisible(true)
//panel.plyGen = new PlayerGenerator()
play{
festSetUp(panel.gPane.chooseClass)
/*additional methods that need to be triggered in order to
*set up the panel for actual test
*/
panel.setClassGroup()
gPane.classGroupPanel.revalidate()
gPane.chooseClass.setVisible(true)
//simulate user interaction
robot.keyPress(VK_M)
robot.keyRelease(VK_M)
//assert results
assertThat gPane.selectClass.getSelection(), is(gPane.monk.getModel())
}
So basic unit testing 101 isolate tests to single actions