Everyone does things differently, and what they're looking for to fill each job differs, so there'll be a huge variety of things that might be included.
What it sounds like you will probably get is an interview with a prospective team lead, an interview with a senior developer who may ask you technical questions, potentially a technical test or problem-solving exercise, possibly preparing some sort of presentation, possibly some sort of technical quiz, possibly also an interview with someone HR-related to see how you'll fit in. It won't be all of the above, but I think that those are the most common elements you'd expect to see. If there was significantly more than that, the interview would be more than three hours.
They may or may not have other candidates around interviewing at the same time, so you might be sitting around with them and waiting for part of this time. Be friendly, remember that while you may be in competition for the job, the company will be looking for a team player.
In general, be prepared to do stuff as well as present yourself to interviewers, but for a junior development position it may not be too specific or demand you show specific technical knowledge they're expecting you to already have. Try and relax and treat it as much as a learning experience as an interview.
Being a bit development-specific, make sure you know what technology stack/languages the company uses, and be prepared to work either with them or with pseudocode that looks like them. The more you can look like you'll fit in easily and need the least training to adapt to what the company is doing, the better you'll look.