Thanks for the reply Jeanne. Actually my problem is solved and it's similar to what you have suggested. I share what I learned so others with same problem could use it too.
I referred to some good sources for solving this problem. One is
Manning JUnit Recipes sections 2.11 and 14.4 which very clearly addressed the exact same problem of testing singletons and objects created in another method. In my case what I did was to give my service class 2 constructors like:
So the class can access both the singleton DAOFactory and any subclass of DAOFactory. Then I made the DAOFactory constructor protected (which is private enough) to e able to subclass it. In the extended DAOFactory I overrode the methods returning DAOs to return mock DAOs. Now from my test I create and pass extended factory to UserManager and it will retrieve it's DAOs from it's factory without knowing the difference. At least that solved my problem
.
Also another good article is:
Unit testing with mock objects