Annotation[] anns = new Annotation[1];
anns[0] = new RoleUser();
getManager().fireEvent(event, anns);
ComponentWithObserves2 instance = getManager().getInstance(component);
Assert.assertFalse(ComponentWithObserves2.hasBeenIntercepted);
Assert.assertNotNull(instance.getPayment());
Assert.assertEquals("USER", instance.getUser());
anns[0] = new RoleAdmin();
event = new LoggedInEvent("ADMIN");
getManager().fireEvent(event, anns);
instance = getManager().getInstance(component);
Assert.assertTrue(ComponentWithObserves2.hasBeenIntercepted);
Assert.assertNotNull(instance.getPayment());
Assert.assertEquals("ADMIN", instance.getUser());
// lessons learned: do it again sam! ;)
ComponentWithObserves2.hasBeenIntercepted = false;
getManager().fireEvent(event, anns);
instance = getManager().getInstance(component);
Assert.assertTrue(ComponentWithObserves2.hasBeenIntercepted);
Assert.assertNotNull(instance.getPayment());
Assert.assertEquals("ADMIN", instance.getUser());
}