This week's book giveaway is in the OCMJEA forum. We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line! See this thread for details.
I am facing a particular problem where I have to test a method that reads a list of objects from a cache and then sorts them based upon priority. The list of objects as well as the cache has to be mock objects. However, once the method returns I have to test that these mock objects that are returned back by this method is sorted correctly based upon expected priority. Here is a very very simplified code sample which mimics what I am trying to do. In this code sample I have 3 Priority Beans which are mocked and I am trying to sort and return it back in ArrayComparator.sortBeans() method. However, the problems are obvious. The call to pb.getPriority() is not instance based but invocation count based and hence when the comparator calls getPriority on the bean for more than 3 times I get an UnexpectedInvocation error. Even I get through that in the assertEquals() method call pbArray[x].getPriority() method still calls the mock object. What I need are real stubs which are unique objects which can later on be compared. How do I do that in JMockit?